metanorma-iso 2.7.8 → 2.7.9
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/iso/html/html_iso_titlepage.html +2 -2
- data/lib/isodoc/iso/html/style-human.css +10 -1
- data/lib/isodoc/iso/html/style-iso.css +10 -1
- data/lib/isodoc/iso/iso.amendment.xsl +423 -37
- data/lib/isodoc/iso/iso.international-standard.xsl +423 -37
- data/lib/metanorma/iso/basicdoc.rng +840 -419
- data/lib/metanorma/iso/biblio.rng +26 -27
- data/lib/metanorma/iso/boilerplate-fr.adoc +1 -1
- data/lib/metanorma/iso/boilerplate-ru.adoc +1 -1
- data/lib/metanorma/iso/boilerplate.adoc +1 -1
- data/lib/metanorma/iso/isodoc.rng +351 -510
- data/lib/metanorma/iso/version.rb +1 -1
- metadata +2 -2
@@ -2103,7 +2103,7 @@
|
|
2103
2103
|
<xsl:apply-templates select="xalan:nodeset($updated_xml_step2)" mode="update_xml_enclose_keep-together_within-line"/>
|
2104
2104
|
</xsl:when>
|
2105
2105
|
<xsl:otherwise>
|
2106
|
-
<xsl:
|
2106
|
+
<xsl:apply-templates select="." mode="update_xml_enclose_keep-together_within-line"/>
|
2107
2107
|
</xsl:otherwise>
|
2108
2108
|
</xsl:choose>
|
2109
2109
|
</xsl:variable>
|
@@ -4826,6 +4826,9 @@
|
|
4826
4826
|
|
4827
4827
|
<xsl:strip-space elements="iso:xref"/>
|
4828
4828
|
|
4829
|
+
<xsl:variable name="namespace_full" select="namespace-uri(/*)"/> <!-- example: https://www.metanorma.org/ns/iso -->
|
4830
|
+
<xsl:variable name="root_element" select="local-name(/*)"/>
|
4831
|
+
|
4829
4832
|
<!-- external parameters -->
|
4830
4833
|
|
4831
4834
|
<xsl:param name="svg_images"/> <!-- svg images array -->
|
@@ -4833,6 +4836,7 @@
|
|
4833
4836
|
<xsl:param name="basepath"/> <!-- base path for images -->
|
4834
4837
|
<xsl:param name="inputxml_basepath"/> <!-- input xml file path -->
|
4835
4838
|
<xsl:param name="inputxml_filename"/> <!-- input xml file name -->
|
4839
|
+
<xsl:param name="output_path"/> <!-- output PDF file name -->
|
4836
4840
|
<xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
|
4837
4841
|
<xsl:param name="syntax-highlight">false</xsl:param> <!-- syntax highlighting feature, default - off -->
|
4838
4842
|
<xsl:param name="add_math_as_text">true</xsl:param> <!-- add math in text behind svg formula, to copy-paste formula from PDF as text -->
|
@@ -5008,6 +5012,15 @@
|
|
5008
5012
|
</xsl:variable>
|
5009
5013
|
<xsl:variable name="marginBottom" select="normalize-space($marginBottom_)"/>
|
5010
5014
|
|
5015
|
+
<xsl:variable name="layout_columns_default">1</xsl:variable>
|
5016
|
+
<xsl:variable name="layout_columns_" select="normalize-space((//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata']/*[local-name() = 'layout-columns'])"/>
|
5017
|
+
<xsl:variable name="layout_columns">
|
5018
|
+
<xsl:choose>
|
5019
|
+
<xsl:when test="$layout_columns_ != ''"><xsl:value-of select="$layout_columns_"/></xsl:when>
|
5020
|
+
<xsl:otherwise><xsl:value-of select="$layout_columns_default"/></xsl:otherwise>
|
5021
|
+
</xsl:choose>
|
5022
|
+
</xsl:variable>
|
5023
|
+
|
5011
5024
|
<!-- Note 2: almost all localized string determined in the element //localized-strings in metanorma xml, but there are a few cases when:
|
5012
5025
|
- string didn't determined yet
|
5013
5026
|
- we need to put the string on two-languages (for instance, on English and French both), but xml contains only localized strings for one language
|
@@ -5501,11 +5514,13 @@
|
|
5501
5514
|
|
5502
5515
|
1pt solid black
|
5503
5516
|
|
5517
|
+
|
5504
5518
|
</xsl:variable>
|
5505
5519
|
<xsl:variable name="table-border" select="normalize-space($table-border_)"/>
|
5506
5520
|
|
5507
5521
|
<xsl:variable name="table-cell-border_">
|
5508
5522
|
0.5pt solid black
|
5523
|
+
|
5509
5524
|
</xsl:variable>
|
5510
5525
|
<xsl:variable name="table-cell-border" select="normalize-space($table-cell-border_)"/>
|
5511
5526
|
|
@@ -6725,6 +6740,43 @@
|
|
6725
6740
|
</xsl:for-each>
|
6726
6741
|
</xsl:template>
|
6727
6742
|
|
6743
|
+
<xsl:template name="processPrefaceSectionsDefault_items">
|
6744
|
+
|
6745
|
+
<xsl:variable name="updated_xml_step_move_pagebreak_">
|
6746
|
+
|
6747
|
+
<xsl:element name="{$root_element}" namespace="{$namespace_full}">
|
6748
|
+
|
6749
|
+
<xsl:call-template name="copyCommonElements"/>
|
6750
|
+
|
6751
|
+
<xsl:element name="preface" namespace="{$namespace_full}"> <!-- save context element -->
|
6752
|
+
<xsl:element name="page_sequence" namespace="{$namespace_full}">
|
6753
|
+
<xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
|
6754
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
6755
|
+
<xsl:apply-templates select="." mode="update_xml_step_move_pagebreak"/>
|
6756
|
+
</xsl:for-each>
|
6757
|
+
</xsl:element>
|
6758
|
+
</xsl:element>
|
6759
|
+
</xsl:element>
|
6760
|
+
</xsl:variable>
|
6761
|
+
|
6762
|
+
<xsl:variable name="updated_xml_step_move_pagebreak_filename" select="concat($output_path,'_preface_', java:getTime(java:java.util.Date.new()), '.xml')"/>
|
6763
|
+
|
6764
|
+
<redirect:write file="{$updated_xml_step_move_pagebreak_filename}">
|
6765
|
+
<xsl:copy-of select="$updated_xml_step_move_pagebreak_"/>
|
6766
|
+
</redirect:write>
|
6767
|
+
|
6768
|
+
<xsl:copy-of select="document($updated_xml_step_move_pagebreak_filename)"/>
|
6769
|
+
|
6770
|
+
<xsl:call-template name="deleteFile">
|
6771
|
+
<xsl:with-param name="filepath" select="$updated_xml_step_move_pagebreak_filename"/>
|
6772
|
+
</xsl:call-template>
|
6773
|
+
</xsl:template>
|
6774
|
+
|
6775
|
+
<xsl:template name="copyCommonElements">
|
6776
|
+
<!-- copy bibdata, localized-strings, metanorma-extension and boilerplate -->
|
6777
|
+
<xsl:copy-of select="/*/*[local-name() != 'preface' and local-name() != 'sections' and local-name() != 'annex' and local-name() != 'bibliography']"/>
|
6778
|
+
</xsl:template>
|
6779
|
+
|
6728
6780
|
<xsl:template name="processMainSectionsDefault">
|
6729
6781
|
<xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
|
6730
6782
|
<xsl:sort select="@displayorder" data-type="number"/>
|
@@ -6741,7 +6793,7 @@
|
|
6741
6793
|
<xsl:sort select="@displayorder" data-type="number"/>
|
6742
6794
|
<xsl:apply-templates select="."/>
|
6743
6795
|
</xsl:for-each>
|
6744
|
-
</xsl:template
|
6796
|
+
</xsl:template><!-- END: processMainSectionsDefault -->
|
6745
6797
|
|
6746
6798
|
<xsl:template name="processMainSectionsDefault_flatxml">
|
6747
6799
|
<xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
|
@@ -6773,6 +6825,80 @@
|
|
6773
6825
|
</xsl:for-each>
|
6774
6826
|
</xsl:template>
|
6775
6827
|
|
6828
|
+
<!-- Example:
|
6829
|
+
<iso-standard>
|
6830
|
+
<sections>
|
6831
|
+
<page_sequence>
|
6832
|
+
<clause...
|
6833
|
+
</page_sequence>
|
6834
|
+
<page_sequence>
|
6835
|
+
<clause...
|
6836
|
+
</page_sequence>
|
6837
|
+
</sections>
|
6838
|
+
<page_sequence>
|
6839
|
+
<annex ..
|
6840
|
+
</page_sequence>
|
6841
|
+
<page_sequence>
|
6842
|
+
<annex ..
|
6843
|
+
</page_sequence>
|
6844
|
+
</iso-standard>
|
6845
|
+
-->
|
6846
|
+
<xsl:template name="processMainSectionsDefault_items">
|
6847
|
+
|
6848
|
+
<xsl:variable name="updated_xml_step_move_pagebreak_">
|
6849
|
+
|
6850
|
+
<xsl:element name="{$root_element}" namespace="{$namespace_full}">
|
6851
|
+
|
6852
|
+
<xsl:call-template name="copyCommonElements"/>
|
6853
|
+
|
6854
|
+
<xsl:element name="sections" namespace="{$namespace_full}"> <!-- save context element -->
|
6855
|
+
<xsl:element name="page_sequence" namespace="{$namespace_full}">
|
6856
|
+
<xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
|
6857
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
6858
|
+
<xsl:apply-templates select="." mode="update_xml_step_move_pagebreak"/>
|
6859
|
+
|
6860
|
+
</xsl:for-each>
|
6861
|
+
</xsl:element>
|
6862
|
+
</xsl:element>
|
6863
|
+
|
6864
|
+
<xsl:element name="page_sequence" namespace="{$namespace_full}">
|
6865
|
+
<xsl:for-each select="/*/*[local-name()='annex']">
|
6866
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
6867
|
+
<xsl:apply-templates select="." mode="update_xml_step_move_pagebreak"/>
|
6868
|
+
</xsl:for-each>
|
6869
|
+
</xsl:element>
|
6870
|
+
|
6871
|
+
<xsl:element name="page_sequence" namespace="{$namespace_full}">
|
6872
|
+
<xsl:element name="bibliography" namespace="{$namespace_full}"> <!-- save context element -->
|
6873
|
+
<xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
|
6874
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
6875
|
+
<xsl:apply-templates select="." mode="update_xml_step_move_pagebreak"/>
|
6876
|
+
</xsl:for-each>
|
6877
|
+
</xsl:element>
|
6878
|
+
</xsl:element>
|
6879
|
+
</xsl:element>
|
6880
|
+
</xsl:variable>
|
6881
|
+
|
6882
|
+
<xsl:variable name="updated_xml_step_move_pagebreak_filename" select="concat($output_path,'_main_', java:getTime(java:java.util.Date.new()), '.xml')"/>
|
6883
|
+
|
6884
|
+
<redirect:write file="{$updated_xml_step_move_pagebreak_filename}">
|
6885
|
+
<xsl:copy-of select="$updated_xml_step_move_pagebreak_"/>
|
6886
|
+
</redirect:write>
|
6887
|
+
|
6888
|
+
<xsl:copy-of select="document($updated_xml_step_move_pagebreak_filename)"/>
|
6889
|
+
|
6890
|
+
<xsl:call-template name="deleteFile">
|
6891
|
+
<xsl:with-param name="filepath" select="$updated_xml_step_move_pagebreak_filename"/>
|
6892
|
+
</xsl:call-template>
|
6893
|
+
</xsl:template> <!-- END: processMainSectionsDefault_items -->
|
6894
|
+
|
6895
|
+
<xsl:template name="deleteFile">
|
6896
|
+
<xsl:param name="filepath"/>
|
6897
|
+
<xsl:variable name="xml_file" select="java:java.io.File.new($filepath)"/>
|
6898
|
+
<xsl:variable name="xml_file_path" select="java:toPath($xml_file)"/>
|
6899
|
+
<xsl:variable name="deletefile" select="java:java.nio.file.Files.deleteIfExists($xml_file_path)"/>
|
6900
|
+
</xsl:template>
|
6901
|
+
|
6776
6902
|
<xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
|
6777
6903
|
<xsl:variable name="tag_fo_inline_keep-together_within-line_open">###fo:inline keep-together_within-line###</xsl:variable>
|
6778
6904
|
<xsl:variable name="tag_fo_inline_keep-together_within-line_close">###/fo:inline keep-together_within-line###</xsl:variable>
|
@@ -6972,7 +7098,9 @@
|
|
6972
7098
|
</xsl:for-each>
|
6973
7099
|
</xsl:template>
|
6974
7100
|
|
6975
|
-
|
7101
|
+
<!-- for table auto-layout algorithm -->
|
7102
|
+
<xsl:param name="table_only_with_id"/> <!-- Example: 'table1' -->
|
7103
|
+
<xsl:param name="table_only_with_ids"/> <!-- Example: 'table1 table2 table3 ' -->
|
6976
7104
|
|
6977
7105
|
<xsl:template match="*[local-name()='table']" priority="2">
|
6978
7106
|
<xsl:choose>
|
@@ -6980,6 +7108,10 @@
|
|
6980
7108
|
<xsl:call-template name="table"/>
|
6981
7109
|
</xsl:when>
|
6982
7110
|
<xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
|
7111
|
+
<xsl:when test="$table_only_with_ids != '' and contains($table_only_with_ids, concat(@id, ' '))">
|
7112
|
+
<xsl:call-template name="table"/>
|
7113
|
+
</xsl:when>
|
7114
|
+
<xsl:when test="$table_only_with_ids != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
|
6983
7115
|
<xsl:otherwise>
|
6984
7116
|
<xsl:call-template name="table"/>
|
6985
7117
|
</xsl:otherwise>
|
@@ -7039,6 +7171,7 @@
|
|
7039
7171
|
<xsl:variable name="margin-side">
|
7040
7172
|
<xsl:choose>
|
7041
7173
|
<xsl:when test="$isApplyAutolayoutAlgorithm = 'true'">0</xsl:when>
|
7174
|
+
<xsl:when test="$isApplyAutolayoutAlgorithm = 'skip'">0</xsl:when>
|
7042
7175
|
<xsl:when test="sum(xalan:nodeset($colwidths)//column) > 75">15</xsl:when>
|
7043
7176
|
<xsl:otherwise>0</xsl:otherwise>
|
7044
7177
|
</xsl:choose>
|
@@ -7310,6 +7443,7 @@
|
|
7310
7443
|
<xsl:when test="$isApplyAutolayoutAlgorithm = 'true'">
|
7311
7444
|
<xsl:call-template name="get-calculated-column-widths-autolayout-algorithm"/>
|
7312
7445
|
</xsl:when>
|
7446
|
+
<xsl:when test="$isApplyAutolayoutAlgorithm = 'skip'"/>
|
7313
7447
|
<xsl:otherwise>
|
7314
7448
|
<xsl:call-template name="calculate-column-widths-proportional">
|
7315
7449
|
<xsl:with-param name="cols-count" select="$cols-count"/>
|
@@ -8270,7 +8404,7 @@
|
|
8270
8404
|
<xsl:copy-of select="node()"/>
|
8271
8405
|
</fn>
|
8272
8406
|
</xsl:for-each>
|
8273
|
-
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='boilerplate']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]
|
8407
|
+
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='boilerplate']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]//*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]//*[local-name()='bibliography']/*">
|
8274
8408
|
<xsl:sort select="@displayorder" data-type="number"/>
|
8275
8409
|
<!-- commented:
|
8276
8410
|
.//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] |
|
@@ -8518,6 +8652,10 @@
|
|
8518
8652
|
<xsl:call-template name="dl"/>
|
8519
8653
|
</xsl:when>
|
8520
8654
|
<xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
|
8655
|
+
<xsl:when test="$table_only_with_ids != '' and contains($table_only_with_ids, concat(@id, ' '))">
|
8656
|
+
<xsl:call-template name="dl"/>
|
8657
|
+
</xsl:when>
|
8658
|
+
<xsl:when test="$table_only_with_ids != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
|
8521
8659
|
<xsl:otherwise>
|
8522
8660
|
<xsl:call-template name="dl"/>
|
8523
8661
|
</xsl:otherwise>
|
@@ -8687,7 +8825,7 @@
|
|
8687
8825
|
|
8688
8826
|
<!-- create virtual html table for dl/[dt and dd] -->
|
8689
8827
|
<xsl:variable name="simple-table">
|
8690
|
-
|
8828
|
+
<!-- initial='<xsl:copy-of select="."/>' -->
|
8691
8829
|
<xsl:variable name="dl_table">
|
8692
8830
|
<tbody>
|
8693
8831
|
<xsl:apply-templates mode="dl_if">
|
@@ -11519,17 +11657,19 @@
|
|
11519
11657
|
</xsl:variable>
|
11520
11658
|
<xsl:value-of select="concat('scale=', $scale,', indent=', $indent)"/>
|
11521
11659
|
</fo:block> -->
|
11522
|
-
<fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
|
11523
|
-
<xsl:if test="not(@mimetype = 'image/svg+xml') and (../*[local-name() = 'name'] or parent::*[local-name() = 'figure'][@unnumbered = 'true']) and not(ancestor::*[local-name() = 'table'])">
|
11524
11660
|
|
11525
|
-
|
11661
|
+
<fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}">
|
11526
11662
|
|
11527
|
-
|
11528
|
-
|
11529
|
-
|
11530
|
-
|
11531
|
-
<xsl:
|
11663
|
+
<xsl:choose>
|
11664
|
+
<!-- default -->
|
11665
|
+
<xsl:when test="((@width = 'auto' or @width = 'text-width' or @width = 'full-page-width' or @width = 'narrow') and @height = 'auto') or (normalize-space(@width) = '' and normalize-space(@height) = '') ">
|
11666
|
+
<!-- add attribute for automatic scaling -->
|
11667
|
+
<xsl:variable name="image-graphic-style_attributes">
|
11668
|
+
<attributes xsl:use-attribute-sets="image-graphic-style"/>
|
11669
|
+
</xsl:variable>
|
11670
|
+
<xsl:copy-of select="xalan:nodeset($image-graphic-style_attributes)/attributes/@*"/>
|
11532
11671
|
|
11672
|
+
<xsl:if test="not(@mimetype = 'image/svg+xml') and not(ancestor::*[local-name() = 'table'])">
|
11533
11673
|
<xsl:variable name="scale">
|
11534
11674
|
<xsl:call-template name="getImageScale">
|
11535
11675
|
<xsl:with-param name="indent" select="$indent"/>
|
@@ -11543,10 +11683,30 @@
|
|
11543
11683
|
<xsl:if test="number($scale) < 100">
|
11544
11684
|
<xsl:attribute name="content-width"><xsl:value-of select="number($scale) * number($scaleRatio)"/>%</xsl:attribute>
|
11545
11685
|
</xsl:if>
|
11546
|
-
</xsl:
|
11547
|
-
</xsl:choose>
|
11686
|
+
</xsl:if>
|
11548
11687
|
|
11549
|
-
|
11688
|
+
</xsl:when> <!-- default -->
|
11689
|
+
<xsl:otherwise>
|
11690
|
+
|
11691
|
+
<xsl:variable name="width_height_">
|
11692
|
+
<attributes>
|
11693
|
+
<xsl:call-template name="setImageWidthHeight"/>
|
11694
|
+
</attributes>
|
11695
|
+
</xsl:variable>
|
11696
|
+
<xsl:variable name="width_height" select="xalan:nodeset($width_height_)"/>
|
11697
|
+
|
11698
|
+
<xsl:copy-of select="$width_height/attributes/@*"/>
|
11699
|
+
|
11700
|
+
<xsl:if test="$width_height/attributes/@content-width != '' and $width_height/attributes/@content-height != ''">
|
11701
|
+
<xsl:attribute name="scaling">non-uniform</xsl:attribute>
|
11702
|
+
</xsl:if>
|
11703
|
+
|
11704
|
+
</xsl:otherwise>
|
11705
|
+
</xsl:choose>
|
11706
|
+
|
11707
|
+
<!--
|
11708
|
+
<xsl:if test="not(@mimetype = 'image/svg+xml') and (../*[local-name() = 'name'] or parent::*[local-name() = 'figure'][@unnumbered = 'true']) and not(ancestor::*[local-name() = 'table'])">
|
11709
|
+
-->
|
11550
11710
|
|
11551
11711
|
</fo:external-graphic>
|
11552
11712
|
</xsl:otherwise>
|
@@ -11572,7 +11732,7 @@
|
|
11572
11732
|
<xsl:call-template name="setImageWidth"/>
|
11573
11733
|
</xsl:variable>
|
11574
11734
|
<xsl:if test="$width != ''">
|
11575
|
-
<xsl:attribute name="width">
|
11735
|
+
<xsl:attribute name="content-width">
|
11576
11736
|
<xsl:value-of select="$width"/>
|
11577
11737
|
</xsl:attribute>
|
11578
11738
|
</xsl:if>
|
@@ -11580,7 +11740,7 @@
|
|
11580
11740
|
<xsl:call-template name="setImageHeight"/>
|
11581
11741
|
</xsl:variable>
|
11582
11742
|
<xsl:if test="$height != ''">
|
11583
|
-
<xsl:attribute name="height">
|
11743
|
+
<xsl:attribute name="content-height">
|
11584
11744
|
<xsl:value-of select="$height"/>
|
11585
11745
|
</xsl:attribute>
|
11586
11746
|
</xsl:if>
|
@@ -14015,7 +14175,7 @@
|
|
14015
14175
|
<!-- ========== -->
|
14016
14176
|
|
14017
14177
|
<!-- main sections -->
|
14018
|
-
<xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
|
14178
|
+
<xsl:template match="/*/*[local-name() = 'sections']/*" name="sections_node" priority="2">
|
14019
14179
|
|
14020
14180
|
<fo:block>
|
14021
14181
|
<xsl:call-template name="setId"/>
|
@@ -14027,6 +14187,11 @@
|
|
14027
14187
|
|
14028
14188
|
</xsl:template>
|
14029
14189
|
|
14190
|
+
<!-- note: @top-level added in mode=" update_xml_step_move_pagebreak" -->
|
14191
|
+
<xsl:template match="*[local-name() = 'sections']/*[local-name() = 'page_sequence']/*[not(@top-level)]" priority="2">
|
14192
|
+
<xsl:call-template name="sections_node"/>
|
14193
|
+
</xsl:template>
|
14194
|
+
|
14030
14195
|
<xsl:template name="sections_element_style">
|
14031
14196
|
|
14032
14197
|
<xsl:variable name="pos"><xsl:number count="*"/></xsl:variable>
|
@@ -14036,7 +14201,7 @@
|
|
14036
14201
|
|
14037
14202
|
</xsl:template> <!-- sections_element_style -->
|
14038
14203
|
|
14039
|
-
<xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
|
14204
|
+
<xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2" name="preface_node"> <!-- /*/*[local-name() = 'preface']/* -->
|
14040
14205
|
|
14041
14206
|
<xsl:choose>
|
14042
14207
|
<xsl:when test="$layoutVersion = '1951' and (local-name() = 'clause' or local-name() = 'introduction')"/>
|
@@ -14052,7 +14217,11 @@
|
|
14052
14217
|
</fo:block>
|
14053
14218
|
</xsl:template>
|
14054
14219
|
|
14055
|
-
<xsl:template match="*[local-name() = '
|
14220
|
+
<xsl:template match="*[local-name() = 'preface']/*[local-name() = 'page_sequence']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
|
14221
|
+
<xsl:call-template name="preface_node"/>
|
14222
|
+
</xsl:template>
|
14223
|
+
|
14224
|
+
<xsl:template match="*[local-name() = 'clause'][normalize-space() != '' or *[local-name() = 'figure'] or @id]" name="template_clause"> <!-- if clause isn't empty -->
|
14056
14225
|
<fo:block>
|
14057
14226
|
<xsl:if test="parent::*[local-name() = 'copyright-statement']">
|
14058
14227
|
<xsl:attribute name="role">SKIP</xsl:attribute>
|
@@ -14078,18 +14247,31 @@
|
|
14078
14247
|
</fo:block>
|
14079
14248
|
</xsl:template>
|
14080
14249
|
|
14081
|
-
<xsl:template match="*[local-name() = 'annex']">
|
14082
|
-
<
|
14083
|
-
|
14250
|
+
<xsl:template match="*[local-name() = 'annex'][normalize-space() != '']">
|
14251
|
+
<xsl:choose>
|
14252
|
+
<xsl:when test="@continue = 'true'"> <!-- it's using for figure/table on top level for block span -->
|
14253
|
+
<fo:block>
|
14254
|
+
<xsl:apply-templates/>
|
14255
|
+
</fo:block>
|
14256
|
+
</xsl:when>
|
14257
|
+
<xsl:otherwise>
|
14084
14258
|
|
14085
|
-
|
14259
|
+
<fo:block break-after="page"/>
|
14260
|
+
<fo:block id="{@id}">
|
14086
14261
|
|
14087
|
-
|
14262
|
+
<xsl:call-template name="setBlockSpanAll"/>
|
14088
14263
|
|
14089
|
-
|
14090
|
-
|
14091
|
-
|
14092
|
-
|
14264
|
+
<xsl:call-template name="refine_annex_style"/>
|
14265
|
+
|
14266
|
+
</fo:block>
|
14267
|
+
|
14268
|
+
<xsl:apply-templates select="*[local-name() = 'title'][@columns = 1]"/>
|
14269
|
+
|
14270
|
+
<fo:block>
|
14271
|
+
<xsl:apply-templates select="node()[not(local-name() = 'title' and @columns = 1)]"/>
|
14272
|
+
</fo:block>
|
14273
|
+
</xsl:otherwise>
|
14274
|
+
</xsl:choose>
|
14093
14275
|
</xsl:template>
|
14094
14276
|
|
14095
14277
|
<xsl:template name="refine_annex_style">
|
@@ -14789,8 +14971,12 @@
|
|
14789
14971
|
</xsl:if>
|
14790
14972
|
</xsl:if> -->
|
14791
14973
|
|
14792
|
-
<fo:block id="{@id}"
|
14793
|
-
|
14974
|
+
<fo:block id="{@id}"/>
|
14975
|
+
|
14976
|
+
<xsl:apply-templates select="*[local-name() = 'title'][@columns = 1]"/>
|
14977
|
+
|
14978
|
+
<fo:block xsl:use-attribute-sets="references-non-normative-style">
|
14979
|
+
<xsl:apply-templates select="node()[not(local-name() = 'title' and @columns = 1)]"/>
|
14794
14980
|
|
14795
14981
|
</fo:block>
|
14796
14982
|
|
@@ -15287,7 +15473,11 @@
|
|
15287
15473
|
<!-- =========================================================================== -->
|
15288
15474
|
<!-- STEP1: -->
|
15289
15475
|
<!-- - Re-order elements in 'preface', 'sections' based on @displayorder -->
|
15476
|
+
<!-- - Put Section title in the correct position -->
|
15290
15477
|
<!-- - Ignore 'span' without style -->
|
15478
|
+
<!-- - Remove semantic xml part -->
|
15479
|
+
<!-- - Remove image/emf (EMF vector image for Word) -->
|
15480
|
+
<!-- - add @id, redundant for table auto-layout algorithm -->
|
15291
15481
|
<!-- =========================================================================== -->
|
15292
15482
|
<xsl:template match="@*|node()" mode="update_xml_step1">
|
15293
15483
|
<xsl:copy>
|
@@ -15394,11 +15584,14 @@
|
|
15394
15584
|
<!-- remove image/emf -->
|
15395
15585
|
<xsl:template match="*[local-name() = 'image']/*[local-name() = 'emf']" mode="update_xml_step1"/>
|
15396
15586
|
|
15397
|
-
|
15587
|
+
<!-- remove preprocess-xslt -->
|
15588
|
+
<xsl:template match="*[local-name() = 'preprocess-xslt']" mode="update_xml_step1"/>
|
15589
|
+
|
15590
|
+
<xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image'] | *[local-name() = 'sourcecode'] | *[local-name() = 'bibdata'] | *[local-name() = 'localized-strings']" mode="update_xml_step1">
|
15398
15591
|
<xsl:copy-of select="."/>
|
15399
15592
|
</xsl:template>
|
15400
15593
|
|
15401
|
-
<!-- add @id,
|
15594
|
+
<!-- add @id, mandatory for table auto-layout algorithm -->
|
15402
15595
|
<xsl:template match="*[local-name() = 'dl' or local-name() = 'table'][not(@id)]" mode="update_xml_step1">
|
15403
15596
|
<xsl:copy>
|
15404
15597
|
<xsl:copy-of select="@*"/>
|
@@ -15417,8 +15610,172 @@
|
|
15417
15610
|
</xsl:if>
|
15418
15611
|
</xsl:template>
|
15419
15612
|
|
15613
|
+
<!-- optimization: remove clause if table_only_with_id isn't empty and clause doesn't contain table or dl with table_only_with_id -->
|
15614
|
+
<xsl:template match="*[local-name() = 'clause' or local-name() = 'p' or local-name() = 'definitions' or local-name() = 'annex']" mode="update_xml_step1">
|
15615
|
+
<xsl:choose>
|
15616
|
+
<xsl:when test="($table_only_with_id != '' or $table_only_with_ids != '') and local-name() = 'p' and (ancestor::*[local-name() = 'table' or local-name() = 'dl' or local-name() = 'toc'])">
|
15617
|
+
<xsl:copy>
|
15618
|
+
<xsl:copy-of select="@*"/>
|
15619
|
+
<xsl:apply-templates mode="update_xml_step1"/>
|
15620
|
+
</xsl:copy>
|
15621
|
+
</xsl:when>
|
15622
|
+
<!-- for table auto-layout algorithm -->
|
15623
|
+
<xsl:when test="$table_only_with_id != '' and not(.//*[local-name() = 'table' or local-name() = 'dl'][@id = $table_only_with_id])">
|
15624
|
+
<xsl:copy>
|
15625
|
+
<xsl:copy-of select="@*"/>
|
15626
|
+
</xsl:copy>
|
15627
|
+
</xsl:when>
|
15628
|
+
<!-- for table auto-layout algorithm -->
|
15629
|
+
<xsl:when test="$table_only_with_ids != '' and not(.//*[local-name() = 'table' or local-name() = 'dl'][contains($table_only_with_ids, concat(@id, ' '))])">
|
15630
|
+
<xsl:copy>
|
15631
|
+
<xsl:copy-of select="@*"/>
|
15632
|
+
</xsl:copy>
|
15633
|
+
</xsl:when>
|
15634
|
+
<xsl:otherwise>
|
15635
|
+
<xsl:copy>
|
15636
|
+
<xsl:copy-of select="@*"/>
|
15637
|
+
<xsl:apply-templates mode="update_xml_step1"/>
|
15638
|
+
</xsl:copy>
|
15639
|
+
</xsl:otherwise>
|
15640
|
+
</xsl:choose>
|
15641
|
+
</xsl:template>
|
15642
|
+
|
15420
15643
|
<!-- =========================================================================== -->
|
15421
15644
|
<!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
|
15645
|
+
<!-- =========================================================================== -->
|
15646
|
+
|
15647
|
+
<!-- =========================================================================== -->
|
15648
|
+
<!-- STEP MOVE PAGEBREAK: move <pagebreak/> at top level under 'preface' and 'sections' -->
|
15649
|
+
<!-- =========================================================================== -->
|
15650
|
+
<xsl:template match="@*|node()" mode="update_xml_step_move_pagebreak">
|
15651
|
+
<xsl:copy>
|
15652
|
+
<xsl:apply-templates select="@*|node()" mode="update_xml_step_move_pagebreak"/>
|
15653
|
+
</xsl:copy>
|
15654
|
+
</xsl:template>
|
15655
|
+
|
15656
|
+
<!-- replace 'pagebreak' by closing tags + page_sequence and opening page_sequence + tags -->
|
15657
|
+
<xsl:template match="*[local-name() = 'pagebreak'][not(following-sibling::*[1][local-name() = 'pagebreak'])]" mode="update_xml_step_move_pagebreak">
|
15658
|
+
|
15659
|
+
<!-- <xsl:choose>
|
15660
|
+
<xsl:when test="ancestor::*[local-name() = 'sections']">
|
15661
|
+
|
15662
|
+
</xsl:when>
|
15663
|
+
<xsl:when test="ancestor::*[local-name() = 'annex']">
|
15664
|
+
</xsl:when>
|
15665
|
+
<xsl:otherwise>
|
15666
|
+
<xsl:copy-of select="."/>
|
15667
|
+
</xsl:otherwise>
|
15668
|
+
</xsl:choose> -->
|
15669
|
+
|
15670
|
+
<!-- determine pagebreak is last element before </fo:flow> or not -->
|
15671
|
+
<xsl:variable name="isLast">
|
15672
|
+
<xsl:for-each select="ancestor-or-self::*[ancestor::*[local-name() = 'sections'] or ancestor-or-self::*[local-name() = 'annex']]">
|
15673
|
+
<xsl:if test="following-sibling::*">false</xsl:if>
|
15674
|
+
</xsl:for-each>
|
15675
|
+
</xsl:variable>
|
15676
|
+
|
15677
|
+
<xsl:if test="contains($isLast, 'false')">
|
15678
|
+
|
15679
|
+
<xsl:variable name="orientation" select="normalize-space(@orientation)"/>
|
15680
|
+
|
15681
|
+
<xsl:variable name="tree_">
|
15682
|
+
<xsl:call-template name="makeAncestorsElementsTree"/>
|
15683
|
+
</xsl:variable>
|
15684
|
+
<xsl:variable name="tree" select="xalan:nodeset($tree_)"/>
|
15685
|
+
|
15686
|
+
<!-- close fo:page-sequence (closing preceding fo elements) -->
|
15687
|
+
<xsl:call-template name="insertClosingElements">
|
15688
|
+
<xsl:with-param name="tree" select="$tree"/>
|
15689
|
+
</xsl:call-template>
|
15690
|
+
|
15691
|
+
<xsl:text disable-output-escaping="yes"></page_sequence></xsl:text>
|
15692
|
+
|
15693
|
+
<!-- create a new page_sequence (opening elements) -->
|
15694
|
+
<xsl:text disable-output-escaping="yes"><page_sequence namespace="</xsl:text><xsl:value-of select="$namespace_full"/>"<xsl:if test="$orientation != ''"> orientation="<xsl:value-of select="$orientation"/>"</xsl:if><xsl:text disable-output-escaping="yes">></xsl:text>
|
15695
|
+
|
15696
|
+
<xsl:call-template name="insertOpeningElements">
|
15697
|
+
<xsl:with-param name="tree" select="$tree"/>
|
15698
|
+
</xsl:call-template>
|
15699
|
+
|
15700
|
+
</xsl:if>
|
15701
|
+
</xsl:template>
|
15702
|
+
|
15703
|
+
<xsl:template name="makeAncestorsElementsTree">
|
15704
|
+
<xsl:for-each select="ancestor::*[ancestor::*[local-name() = 'sections'] or ancestor-or-self::*[local-name() = 'annex']]">
|
15705
|
+
<element pos="{position()}">
|
15706
|
+
<xsl:copy-of select="@*[local-name() != 'id']"/>
|
15707
|
+
<xsl:value-of select="name()"/>
|
15708
|
+
</element>
|
15709
|
+
</xsl:for-each>
|
15710
|
+
</xsl:template>
|
15711
|
+
|
15712
|
+
<xsl:template name="insertClosingElements">
|
15713
|
+
<xsl:param name="tree"/>
|
15714
|
+
<xsl:for-each select="$tree//element">
|
15715
|
+
<xsl:sort data-type="number" order="descending" select="@pos"/>
|
15716
|
+
<xsl:text disable-output-escaping="yes"></</xsl:text>
|
15717
|
+
<xsl:value-of select="."/>
|
15718
|
+
<xsl:text disable-output-escaping="yes">></xsl:text>
|
15719
|
+
<xsl:if test="$debug = 'true'">
|
15720
|
+
<xsl:message></<xsl:value-of select="."/>></xsl:message>
|
15721
|
+
</xsl:if>
|
15722
|
+
</xsl:for-each>
|
15723
|
+
</xsl:template>
|
15724
|
+
|
15725
|
+
<xsl:template name="insertOpeningElements">
|
15726
|
+
<xsl:param name="tree"/>
|
15727
|
+
<xsl:for-each select="$tree//element">
|
15728
|
+
<xsl:text disable-output-escaping="yes"><</xsl:text>
|
15729
|
+
<xsl:value-of select="."/>
|
15730
|
+
<xsl:for-each select="@*[local-name() != 'pos']">
|
15731
|
+
<xsl:text> </xsl:text>
|
15732
|
+
<xsl:value-of select="local-name()"/>
|
15733
|
+
<xsl:text>="</xsl:text>
|
15734
|
+
<xsl:value-of select="."/>
|
15735
|
+
<xsl:text>"</xsl:text>
|
15736
|
+
</xsl:for-each>
|
15737
|
+
<xsl:if test="position() = 1"> continue="true"</xsl:if>
|
15738
|
+
<xsl:text disable-output-escaping="yes">></xsl:text>
|
15739
|
+
<xsl:if test="$debug = 'true'">
|
15740
|
+
<xsl:message><<xsl:value-of select="."/>></xsl:message>
|
15741
|
+
</xsl:if>
|
15742
|
+
</xsl:for-each>
|
15743
|
+
</xsl:template>
|
15744
|
+
|
15745
|
+
<!-- move full page width figures, tables at top level -->
|
15746
|
+
<xsl:template match="*[local-name() = 'figure' or local-name() = 'table'][normalize-space(@width) != 'text-width']" mode="update_xml_step_move_pagebreak">
|
15747
|
+
<xsl:choose>
|
15748
|
+
<xsl:when test="$layout_columns != 1">
|
15749
|
+
|
15750
|
+
<xsl:variable name="tree_">
|
15751
|
+
<xsl:call-template name="makeAncestorsElementsTree"/>
|
15752
|
+
</xsl:variable>
|
15753
|
+
<xsl:variable name="tree" select="xalan:nodeset($tree_)"/>
|
15754
|
+
|
15755
|
+
<xsl:call-template name="insertClosingElements">
|
15756
|
+
<xsl:with-param name="tree" select="$tree"/>
|
15757
|
+
</xsl:call-template>
|
15758
|
+
|
15759
|
+
<!-- <xsl:copy-of select="."/> -->
|
15760
|
+
<xsl:copy>
|
15761
|
+
<xsl:copy-of select="@*"/>
|
15762
|
+
<xsl:attribute name="top-level">true</xsl:attribute>
|
15763
|
+
<xsl:copy-of select="node()"/>
|
15764
|
+
</xsl:copy>
|
15765
|
+
|
15766
|
+
<xsl:call-template name="insertOpeningElements">
|
15767
|
+
<xsl:with-param name="tree" select="$tree"/>
|
15768
|
+
</xsl:call-template>
|
15769
|
+
|
15770
|
+
</xsl:when>
|
15771
|
+
<xsl:otherwise>
|
15772
|
+
<xsl:copy-of select="."/>
|
15773
|
+
</xsl:otherwise>
|
15774
|
+
</xsl:choose>
|
15775
|
+
</xsl:template>
|
15776
|
+
|
15777
|
+
<!-- =========================================================================== -->
|
15778
|
+
<!-- END STEP MOVE PAGEBREAK: move <pagebreak/> at top level under 'preface' and 'sections' -->
|
15422
15779
|
<!-- =========================================================================== -->
|
15423
15780
|
|
15424
15781
|
<!-- =========================================================================== -->
|
@@ -15708,7 +16065,7 @@
|
|
15708
16065
|
<xsl:apply-templates select="*[local-name() = 'term']" mode="linear_xml"/>
|
15709
16066
|
</xsl:template>
|
15710
16067
|
|
15711
|
-
<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">
|
16068
|
+
<xsl:template match="*[local-name() = 'introduction']//*[local-name() = 'title'] | *[local-name() = 'foreword']//*[local-name() = 'title'] | *[local-name() = 'preface']//*[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">
|
15712
16069
|
<xsl:copy>
|
15713
16070
|
<xsl:apply-templates select="@*" mode="linear_xml"/>
|
15714
16071
|
|
@@ -15727,7 +16084,7 @@
|
|
15727
16084
|
<xsl:copy-of select="../@inline-header"/>
|
15728
16085
|
</xsl:if>
|
15729
16086
|
|
15730
|
-
<xsl:
|
16087
|
+
<xsl:variable name="ancestor">
|
15731
16088
|
<xsl:choose>
|
15732
16089
|
<xsl:when test="ancestor::*[local-name() = 'foreword']">foreword</xsl:when>
|
15733
16090
|
<xsl:when test="ancestor::*[local-name() = 'introduction']">introduction</xsl:when>
|
@@ -15735,6 +16092,35 @@
|
|
15735
16092
|
<xsl:when test="ancestor::*[local-name() = 'annex']">annex</xsl:when>
|
15736
16093
|
<xsl:when test="ancestor::*[local-name() = 'bibliography']">bibliography</xsl:when>
|
15737
16094
|
</xsl:choose>
|
16095
|
+
</xsl:variable>
|
16096
|
+
<xsl:attribute name="ancestor">
|
16097
|
+
<xsl:value-of select="$ancestor"/>
|
16098
|
+
</xsl:attribute>
|
16099
|
+
|
16100
|
+
<xsl:attribute name="parent">
|
16101
|
+
<xsl:choose>
|
16102
|
+
<xsl:when test="ancestor::*[local-name() = 'preface']">preface</xsl:when>
|
16103
|
+
<xsl:otherwise><xsl:value-of select="$ancestor"/></xsl:otherwise>
|
16104
|
+
</xsl:choose>
|
16105
|
+
</xsl:attribute>
|
16106
|
+
|
16107
|
+
<xsl:apply-templates mode="linear_xml"/>
|
16108
|
+
</xsl:copy>
|
16109
|
+
</xsl:template>
|
16110
|
+
|
16111
|
+
<xsl:template match="*[local-name() = 'li']" mode="linear_xml" priority="2">
|
16112
|
+
<xsl:copy>
|
16113
|
+
<xsl:apply-templates select="@*" mode="linear_xml"/>
|
16114
|
+
|
16115
|
+
<xsl:variable name="ancestor">
|
16116
|
+
<xsl:choose>
|
16117
|
+
<xsl:when test="ancestor::*[local-name() = 'preface']">preface</xsl:when>
|
16118
|
+
<xsl:when test="ancestor::*[local-name() = 'sections']">sections</xsl:when>
|
16119
|
+
<xsl:when test="ancestor::*[local-name() = 'annex']">annex</xsl:when>
|
16120
|
+
</xsl:choose>
|
16121
|
+
</xsl:variable>
|
16122
|
+
<xsl:attribute name="ancestor">
|
16123
|
+
<xsl:value-of select="$ancestor"/>
|
15738
16124
|
</xsl:attribute>
|
15739
16125
|
|
15740
16126
|
<xsl:apply-templates mode="linear_xml"/>
|
@@ -16143,7 +16529,7 @@
|
|
16143
16529
|
<xsl:value-of select="$depth"/>
|
16144
16530
|
</xsl:when>
|
16145
16531
|
<xsl:otherwise>
|
16146
|
-
<xsl:variable name="level_total" select="count(ancestor::*)"/>
|
16532
|
+
<xsl:variable name="level_total" select="count(ancestor::*[local-name() != 'page_sequence'])"/>
|
16147
16533
|
<xsl:variable name="level">
|
16148
16534
|
<xsl:choose>
|
16149
16535
|
<xsl:when test="parent::*[local-name() = 'preface']">
|