metanorma-un 0.9.0 → 0.9.3
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/un/html/htmlstyle.css +6 -0
- data/lib/isodoc/un/html/htmlstyle.scss +1 -0
- data/lib/isodoc/un/html/unece.css +18 -12
- data/lib/isodoc/un/html/unece.scss +17 -10
- data/lib/isodoc/un/html/word_unece_titlepage.html +4 -4
- data/lib/isodoc/un/i18n.rb +1 -1
- data/lib/isodoc/un/presentation_xml_convert.rb +1 -1
- data/lib/isodoc/un/un.plenary-attachment.xsl +1343 -274
- data/lib/isodoc/un/un.plenary.xsl +1343 -274
- data/lib/isodoc/un/un.recommendation.xsl +1340 -271
- data/lib/isodoc/un/word_convert.rb +27 -21
- data/lib/metanorma/un/biblio.rng +134 -39
- data/lib/metanorma/un/isodoc.rng +16 -0
- data/lib/metanorma/un/version.rb +1 -1
- metadata +3 -3
@@ -615,6 +615,7 @@
|
|
615
615
|
</xsl:template>
|
616
616
|
|
617
617
|
<xsl:template match="un:p" name="paragraph">
|
618
|
+
<xsl:param name="split_keep-within-line"/>
|
618
619
|
<fo:block>
|
619
620
|
<xsl:if test="following-sibling::*">
|
620
621
|
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
|
@@ -625,7 +626,9 @@
|
|
625
626
|
<xsl:otherwise>justify</xsl:otherwise>
|
626
627
|
</xsl:choose>
|
627
628
|
</xsl:attribute>
|
628
|
-
<xsl:apply-templates
|
629
|
+
<xsl:apply-templates>
|
630
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
631
|
+
</xsl:apply-templates>
|
629
632
|
</fo:block>
|
630
633
|
</xsl:template>
|
631
634
|
|
@@ -775,85 +778,6 @@
|
|
775
778
|
</fo:block-container>
|
776
779
|
</xsl:template>
|
777
780
|
|
778
|
-
|
779
|
-
<!-- Examples:
|
780
|
-
[b-ASM] b-ASM, http://www.eecs.umich.edu/gasm/ (accessed 20 March 2018).
|
781
|
-
[b-Börger & Stärk] b-Börger & Stärk, Börger, E., and Stärk, R. S. (2003), Abstract State Machines: A Method for High-Level System Design and Analysis, Springer-Verlag.
|
782
|
-
-->
|
783
|
-
<xsl:template match="un:annex//un:bibitem">
|
784
|
-
<fo:block id="{@id}" margin-top="6pt" margin-left="12mm" text-indent="-12mm">
|
785
|
-
<xsl:if test="un:formattedref">
|
786
|
-
<xsl:choose>
|
787
|
-
<xsl:when test="un:docidentifier[@type = 'metanorma']">
|
788
|
-
<xsl:attribute name="margin-left">0</xsl:attribute>
|
789
|
-
<xsl:attribute name="text-indent">0</xsl:attribute>
|
790
|
-
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
|
791
|
-
<!-- create list -->
|
792
|
-
<fo:list-block>
|
793
|
-
<fo:list-item>
|
794
|
-
<fo:list-item-label end-indent="label-end()">
|
795
|
-
<fo:block>
|
796
|
-
<xsl:apply-templates select="un:docidentifier[@type = 'metanorma']" mode="process"/>
|
797
|
-
</fo:block>
|
798
|
-
</fo:list-item-label>
|
799
|
-
<fo:list-item-body start-indent="body-start()">
|
800
|
-
<fo:block margin-left="3mm">
|
801
|
-
<xsl:apply-templates select="un:formattedref"/>
|
802
|
-
</fo:block>
|
803
|
-
</fo:list-item-body>
|
804
|
-
</fo:list-item>
|
805
|
-
</fo:list-block>
|
806
|
-
</xsl:when>
|
807
|
-
<xsl:otherwise>
|
808
|
-
<xsl:apply-templates select="un:formattedref"/>
|
809
|
-
<xsl:apply-templates select="un:docidentifier[(@type != 'metanorma' and @type != 'metanorma-ordinal') or not(@type)]" mode="process"/>
|
810
|
-
</xsl:otherwise>
|
811
|
-
</xsl:choose>
|
812
|
-
</xsl:if>
|
813
|
-
<xsl:if test="un:title">
|
814
|
-
<xsl:for-each select="un:contributor">
|
815
|
-
<xsl:value-of select="un:organization/un:name"/>
|
816
|
-
<xsl:if test="position() != last()">, </xsl:if>
|
817
|
-
</xsl:for-each>
|
818
|
-
<xsl:text> (</xsl:text>
|
819
|
-
<xsl:variable name="date">
|
820
|
-
<xsl:choose>
|
821
|
-
<xsl:when test="un:date[@type='issued']">
|
822
|
-
<xsl:value-of select="un:date[@type='issued']/un:on"/>
|
823
|
-
</xsl:when>
|
824
|
-
<xsl:otherwise>
|
825
|
-
<xsl:value-of select="un:date/un:on"/>
|
826
|
-
</xsl:otherwise>
|
827
|
-
</xsl:choose>
|
828
|
-
</xsl:variable>
|
829
|
-
<xsl:value-of select="$date"/>
|
830
|
-
<xsl:text>) </xsl:text>
|
831
|
-
<fo:inline font-style="italic"><xsl:value-of select="un:title"/></fo:inline>
|
832
|
-
<xsl:if test="un:contributor[un:role/@type='publisher']/un:organization/un:name">
|
833
|
-
<xsl:text> (</xsl:text><xsl:value-of select="un:contributor[un:role/@type='publisher']/un:organization/un:name"/><xsl:text>)</xsl:text>
|
834
|
-
</xsl:if>
|
835
|
-
<xsl:text>, </xsl:text>
|
836
|
-
<xsl:value-of select="$date"/>
|
837
|
-
<xsl:text>. </xsl:text>
|
838
|
-
<xsl:value-of select="un:docidentifier"/>
|
839
|
-
<xsl:value-of select="$linebreak"/>
|
840
|
-
<xsl:value-of select="un:uri"/>
|
841
|
-
</xsl:if>
|
842
|
-
</fo:block>
|
843
|
-
</xsl:template>
|
844
|
-
|
845
|
-
<xsl:template match="un:annex//un:bibitem//un:formattedref">
|
846
|
-
<xsl:apply-templates/>
|
847
|
-
</xsl:template>
|
848
|
-
|
849
|
-
<xsl:template match="un:docidentifier[@type = 'metanorma' or @type = 'metanorma-ordinal']" mode="process">
|
850
|
-
<xsl:apply-templates/>
|
851
|
-
</xsl:template>
|
852
|
-
<xsl:template match="un:docidentifier[(@type != 'metanorma' and @type != 'metanorma-ordinal') or not(@type)]" mode="process">
|
853
|
-
<xsl:text> [</xsl:text><xsl:apply-templates/><xsl:text>]</xsl:text>
|
854
|
-
</xsl:template>
|
855
|
-
<xsl:template match="un:docidentifier"/>
|
856
|
-
|
857
781
|
|
858
782
|
|
859
783
|
<!-- ============================ -->
|
@@ -902,12 +826,41 @@
|
|
902
826
|
<xsl:text>iVBORw0KGgoAAAANSUhEUgAAAUgAAAEfCAYAAAAjn198AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA8BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4M0JCQjMxNzJBNjcxMUVBQjQ3MkM1NDNGQjcxMjlFQyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4M0JCQjMxNjJBNjcxMUVBQjQ3MkM1NDNGQjcxMjlFQyIgeG1wOkNyZWF0b3JUb29sPSJBY3JvYmF0IFBERk1ha2VyIDE4IGZvciBXb3JkIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6OTM1MzU0ZmUtYzRmYS00Y2I4LTlkOGMtYjk0M2E4OTk2YzhiIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOjhlMzkwMGEzLTMwZWUtNGRlNy04NDc0LTlhZTA5ZTFjZjhmMiIvPiA8ZGM6Y3JlYXRvcj4gPHJkZjpTZXE+IDxyZGY6bGk+U3RlcGhl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</xsl:text>
|
903
827
|
</xsl:variable>
|
904
828
|
|
905
|
-
<xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:param name="add_math_as_text">true</xsl:param><xsl:variable name="
|
829
|
+
<xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:param name="add_math_as_text">true</xsl:param><xsl:param name="table_if">false</xsl:param><xsl:param name="table_widths"/><xsl:variable name="table_widths_from_if" select="xalan:nodeset($table_widths)"/><xsl:variable name="table_widths_from_if_calculated_">
|
830
|
+
<xsl:for-each select="$table_widths_from_if//table">
|
831
|
+
<xsl:copy>
|
832
|
+
<xsl:copy-of select="@*"/>
|
833
|
+
<xsl:call-template name="calculate-column-widths-autolayout-algorithm"/>
|
834
|
+
</xsl:copy>
|
835
|
+
</xsl:for-each>
|
836
|
+
</xsl:variable><xsl:variable name="table_widths_from_if_calculated" select="xalan:nodeset($table_widths_from_if_calculated_)"/><xsl:param name="table_if_debug">false</xsl:param><xsl:variable name="isGenerateTableIF_">
|
837
|
+
false
|
838
|
+
</xsl:variable><xsl:variable name="isGenerateTableIF" select="normalize-space($isGenerateTableIF_)"/><xsl:variable name="lang">
|
906
839
|
<xsl:call-template name="getLang"/>
|
907
|
-
</xsl:variable><xsl:variable name="
|
908
|
-
|
840
|
+
</xsl:variable><xsl:variable name="papersize" select="java:toLowerCase(java:java.lang.String.new(normalize-space(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata']/*[local-name() = 'papersize'])))"/><xsl:variable name="papersize_width_">
|
841
|
+
<xsl:choose>
|
842
|
+
<xsl:when test="$papersize = 'letter'">215.9</xsl:when>
|
843
|
+
<xsl:when test="$papersize = 'a4'">210</xsl:when>
|
844
|
+
</xsl:choose>
|
845
|
+
</xsl:variable><xsl:variable name="papersize_width" select="normalize-space($papersize_width_)"/><xsl:variable name="papersize_height_">
|
846
|
+
<xsl:choose>
|
847
|
+
<xsl:when test="$papersize = 'letter'">279.4</xsl:when>
|
848
|
+
<xsl:when test="$papersize = 'a4'">297</xsl:when>
|
849
|
+
</xsl:choose>
|
850
|
+
</xsl:variable><xsl:variable name="papersize_height" select="normalize-space($papersize_height_)"/><xsl:variable name="pageWidth_">
|
851
|
+
<xsl:choose>
|
852
|
+
<xsl:when test="$papersize_width != ''"><xsl:value-of select="$papersize_width"/></xsl:when>
|
853
|
+
<xsl:otherwise>
|
854
|
+
210
|
855
|
+
</xsl:otherwise>
|
856
|
+
</xsl:choose>
|
909
857
|
</xsl:variable><xsl:variable name="pageWidth" select="normalize-space($pageWidth_)"/><xsl:variable name="pageHeight_">
|
910
|
-
|
858
|
+
<xsl:choose>
|
859
|
+
<xsl:when test="$papersize_height != ''"><xsl:value-of select="$papersize_height"/></xsl:when>
|
860
|
+
<xsl:otherwise>
|
861
|
+
297
|
862
|
+
</xsl:otherwise>
|
863
|
+
</xsl:choose>
|
911
864
|
</xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="marginLeftRight1_">
|
912
865
|
40
|
913
866
|
</xsl:variable><xsl:variable name="marginLeftRight1" select="normalize-space($marginLeftRight1_)"/><xsl:variable name="marginLeftRight2_">
|
@@ -1021,7 +974,8 @@
|
|
1021
974
|
<xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
|
1022
975
|
</xsl:otherwise>
|
1023
976
|
</xsl:choose>
|
1024
|
-
</xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:attribute-set name="root-style">
|
977
|
+
</xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="font_noto_sans">Noto Sans, Noto Sans HK, Noto Sans JP, Noto Sans KR, Noto Sans SC, Noto Sans TC</xsl:variable><xsl:variable name="font_noto_sans_mono">Noto Sans Mono, Noto Sans Mono CJK HK, Noto Sans Mono CJK JP, Noto Sans Mono CJK KR, Noto Sans Mono CJK SC, Noto Sans Mono CJK TC</xsl:variable><xsl:variable name="font_noto_serif">Noto Serif, Noto Serif HK, Noto Serif JP, Noto Serif KR, Noto Serif SC, Noto Serif TC</xsl:variable><xsl:attribute-set name="root-style">
|
978
|
+
|
1025
979
|
|
1026
980
|
|
1027
981
|
|
@@ -1038,7 +992,8 @@
|
|
1038
992
|
|
1039
993
|
|
1040
994
|
|
1041
|
-
<xsl:attribute name="font-family">Times New Roman, STIX Two Math,
|
995
|
+
<xsl:attribute name="font-family">Times New Roman, STIX Two Math, <xsl:value-of select="$font_noto_serif"/></xsl:attribute>
|
996
|
+
<xsl:attribute name="font-family-generic">Serif</xsl:attribute>
|
1042
997
|
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
1043
998
|
|
1044
999
|
</xsl:attribute-set><xsl:template name="insertRootStyle">
|
@@ -1052,17 +1007,60 @@
|
|
1052
1007
|
</xsl:variable>
|
1053
1008
|
<xsl:variable name="additional_fonts" select="normalize-space($additional_fonts_)"/>
|
1054
1009
|
|
1010
|
+
<xsl:variable name="font_family_generic" select="$root-style_/root-style/@font-family-generic"/>
|
1011
|
+
|
1055
1012
|
<xsl:for-each select="$root-style_/root-style/@*">
|
1013
|
+
|
1056
1014
|
<xsl:choose>
|
1057
|
-
<xsl:when test="local-name() = 'font-family'
|
1015
|
+
<xsl:when test="local-name() = 'font-family-generic'"><!-- skip, it's using for determine 'sans' or 'serif' --></xsl:when>
|
1016
|
+
<xsl:when test="local-name() = 'font-family'">
|
1017
|
+
|
1018
|
+
<xsl:variable name="font_regional_prefix">
|
1019
|
+
<xsl:choose>
|
1020
|
+
<xsl:when test="$font_family_generic = 'Sans'">Noto Sans</xsl:when>
|
1021
|
+
<xsl:otherwise>Noto Serif</xsl:otherwise>
|
1022
|
+
</xsl:choose>
|
1023
|
+
</xsl:variable>
|
1024
|
+
|
1058
1025
|
<xsl:attribute name="{local-name()}">
|
1059
|
-
|
1026
|
+
|
1027
|
+
<xsl:variable name="font_extended">
|
1028
|
+
<xsl:choose>
|
1029
|
+
<xsl:when test="$lang = 'zh'"><xsl:value-of select="$font_regional_prefix"/> SC</xsl:when>
|
1030
|
+
<xsl:when test="$lang = 'hk'"><xsl:value-of select="$font_regional_prefix"/> HK</xsl:when>
|
1031
|
+
<xsl:when test="$lang = 'jp'"><xsl:value-of select="$font_regional_prefix"/> JP</xsl:when>
|
1032
|
+
<xsl:when test="$lang = 'kr'"><xsl:value-of select="$font_regional_prefix"/> KR</xsl:when>
|
1033
|
+
<xsl:when test="$lang = 'sc'"><xsl:value-of select="$font_regional_prefix"/> SC</xsl:when>
|
1034
|
+
<xsl:when test="$lang = 'tc'"><xsl:value-of select="$font_regional_prefix"/> TC</xsl:when>
|
1035
|
+
</xsl:choose>
|
1036
|
+
</xsl:variable>
|
1037
|
+
<xsl:if test="normalize-space($font_extended) != ''">
|
1038
|
+
<xsl:value-of select="$font_regional_prefix"/><xsl:text>, </xsl:text>
|
1039
|
+
<xsl:value-of select="$font_extended"/><xsl:text>, </xsl:text>
|
1040
|
+
</xsl:if>
|
1041
|
+
|
1042
|
+
<xsl:value-of select="."/>
|
1043
|
+
|
1044
|
+
<xsl:if test="$additional_fonts != ''">
|
1045
|
+
<xsl:text>, </xsl:text><xsl:value-of select="$additional_fonts"/>
|
1046
|
+
</xsl:if>
|
1060
1047
|
</xsl:attribute>
|
1061
1048
|
</xsl:when>
|
1062
1049
|
<xsl:otherwise>
|
1063
1050
|
<xsl:copy-of select="."/>
|
1064
1051
|
</xsl:otherwise>
|
1065
1052
|
</xsl:choose>
|
1053
|
+
|
1054
|
+
<!-- <xsl:choose>
|
1055
|
+
<xsl:when test="local-name() = 'font-family'">
|
1056
|
+
<xsl:attribute name="{local-name()}">
|
1057
|
+
<xsl:value-of select="."/>, <xsl:value-of select="$additional_fonts"/>
|
1058
|
+
</xsl:attribute>
|
1059
|
+
</xsl:when>
|
1060
|
+
<xsl:otherwise>
|
1061
|
+
<xsl:copy-of select="."/>
|
1062
|
+
</xsl:otherwise>
|
1063
|
+
</xsl:choose> -->
|
1066
1064
|
</xsl:for-each>
|
1067
1065
|
</xsl:template><xsl:attribute-set name="copyright-statement-style">
|
1068
1066
|
|
@@ -1133,13 +1131,14 @@
|
|
1133
1131
|
|
1134
1132
|
|
1135
1133
|
|
1134
|
+
|
1136
1135
|
|
1137
1136
|
|
1138
1137
|
|
1139
1138
|
|
1140
1139
|
|
1141
1140
|
|
1142
|
-
<xsl:attribute name="font-family">Courier New
|
1141
|
+
<xsl:attribute name="font-family">Courier New, <xsl:value-of select="$font_noto_sans_mono"/></xsl:attribute>
|
1143
1142
|
<xsl:attribute name="margin-top">6pt</xsl:attribute>
|
1144
1143
|
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
|
1145
1144
|
|
@@ -1177,6 +1176,7 @@
|
|
1177
1176
|
|
1178
1177
|
|
1179
1178
|
|
1179
|
+
|
1180
1180
|
|
1181
1181
|
</xsl:attribute-set><xsl:attribute-set name="example-style">
|
1182
1182
|
|
@@ -1192,6 +1192,7 @@
|
|
1192
1192
|
|
1193
1193
|
|
1194
1194
|
|
1195
|
+
|
1195
1196
|
</xsl:attribute-set><xsl:attribute-set name="example-body-style">
|
1196
1197
|
|
1197
1198
|
|
@@ -1211,6 +1212,7 @@
|
|
1211
1212
|
|
1212
1213
|
|
1213
1214
|
|
1215
|
+
|
1214
1216
|
|
1215
1217
|
|
1216
1218
|
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
@@ -1251,6 +1253,7 @@
|
|
1251
1253
|
|
1252
1254
|
</xsl:attribute-set><xsl:variable name="table-border_">
|
1253
1255
|
|
1256
|
+
|
1254
1257
|
</xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-container-style">
|
1255
1258
|
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
1256
1259
|
<xsl:attribute name="margin-right">0mm</xsl:attribute>
|
@@ -1272,6 +1275,7 @@
|
|
1272
1275
|
|
1273
1276
|
|
1274
1277
|
|
1278
|
+
|
1275
1279
|
|
1276
1280
|
|
1277
1281
|
|
@@ -1301,6 +1305,7 @@
|
|
1301
1305
|
|
1302
1306
|
|
1303
1307
|
|
1308
|
+
|
1304
1309
|
|
1305
1310
|
|
1306
1311
|
|
@@ -1310,6 +1315,7 @@
|
|
1310
1315
|
|
1311
1316
|
|
1312
1317
|
|
1318
|
+
|
1313
1319
|
|
1314
1320
|
|
1315
1321
|
|
@@ -1354,6 +1360,7 @@
|
|
1354
1360
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
1355
1361
|
<xsl:attribute name="border">solid black 1pt</xsl:attribute>
|
1356
1362
|
<xsl:attribute name="padding-left">1mm</xsl:attribute>
|
1363
|
+
<xsl:attribute name="padding-right">1mm</xsl:attribute>
|
1357
1364
|
<xsl:attribute name="display-align">center</xsl:attribute>
|
1358
1365
|
|
1359
1366
|
|
@@ -1374,6 +1381,8 @@
|
|
1374
1381
|
<xsl:attribute name="display-align">center</xsl:attribute>
|
1375
1382
|
<xsl:attribute name="border">solid black 1pt</xsl:attribute>
|
1376
1383
|
<xsl:attribute name="padding-left">1mm</xsl:attribute>
|
1384
|
+
<xsl:attribute name="padding-right">1mm</xsl:attribute>
|
1385
|
+
|
1377
1386
|
|
1378
1387
|
|
1379
1388
|
|
@@ -1402,7 +1411,7 @@
|
|
1402
1411
|
|
1403
1412
|
|
1404
1413
|
|
1405
|
-
|
1414
|
+
|
1406
1415
|
|
1407
1416
|
|
1408
1417
|
|
@@ -1417,6 +1426,7 @@
|
|
1417
1426
|
|
1418
1427
|
|
1419
1428
|
|
1429
|
+
|
1420
1430
|
</xsl:attribute-set><xsl:attribute-set name="table-fn-style">
|
1421
1431
|
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
|
1422
1432
|
|
@@ -1425,6 +1435,8 @@
|
|
1425
1435
|
|
1426
1436
|
|
1427
1437
|
|
1438
|
+
|
1439
|
+
|
1428
1440
|
</xsl:attribute-set><xsl:attribute-set name="table-fn-number-style">
|
1429
1441
|
<xsl:attribute name="font-size">80%</xsl:attribute>
|
1430
1442
|
<xsl:attribute name="padding-right">5mm</xsl:attribute>
|
@@ -1440,6 +1452,7 @@
|
|
1440
1452
|
|
1441
1453
|
|
1442
1454
|
|
1455
|
+
|
1443
1456
|
<xsl:attribute name="vertical-align">super</xsl:attribute>
|
1444
1457
|
|
1445
1458
|
</xsl:attribute-set><xsl:attribute-set name="fn-container-body-style">
|
@@ -1461,7 +1474,8 @@
|
|
1461
1474
|
</xsl:attribute-set><xsl:attribute-set name="dt-row-style">
|
1462
1475
|
|
1463
1476
|
|
1464
|
-
</xsl:attribute-set><xsl:attribute-set name="dt-style">
|
1477
|
+
</xsl:attribute-set><xsl:attribute-set name="dt-cell-style">
|
1478
|
+
</xsl:attribute-set><xsl:attribute-set name="dt-block-style">
|
1465
1479
|
<xsl:attribute name="margin-top">6pt</xsl:attribute>
|
1466
1480
|
|
1467
1481
|
|
@@ -1473,6 +1487,29 @@
|
|
1473
1487
|
|
1474
1488
|
|
1475
1489
|
|
1490
|
+
|
1491
|
+
</xsl:attribute-set><xsl:attribute-set name="dl-name-style">
|
1492
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
1493
|
+
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
|
1494
|
+
|
1495
|
+
|
1496
|
+
|
1497
|
+
|
1498
|
+
|
1499
|
+
|
1500
|
+
|
1501
|
+
|
1502
|
+
|
1503
|
+
|
1504
|
+
|
1505
|
+
|
1506
|
+
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
1507
|
+
|
1508
|
+
|
1509
|
+
|
1510
|
+
|
1511
|
+
</xsl:attribute-set><xsl:attribute-set name="dd-cell-style">
|
1512
|
+
<xsl:attribute name="padding-left">2mm</xsl:attribute>
|
1476
1513
|
</xsl:attribute-set><xsl:attribute-set name="appendix-style">
|
1477
1514
|
|
1478
1515
|
|
@@ -1500,6 +1537,7 @@
|
|
1500
1537
|
|
1501
1538
|
|
1502
1539
|
|
1540
|
+
|
1503
1541
|
|
1504
1542
|
|
1505
1543
|
|
@@ -1570,6 +1608,8 @@
|
|
1570
1608
|
|
1571
1609
|
|
1572
1610
|
|
1611
|
+
</xsl:attribute-set><xsl:attribute-set name="termnote-p-style">
|
1612
|
+
|
1573
1613
|
</xsl:attribute-set><xsl:attribute-set name="quote-style">
|
1574
1614
|
<xsl:attribute name="margin-left">12mm</xsl:attribute>
|
1575
1615
|
<xsl:attribute name="margin-right">12mm</xsl:attribute>
|
@@ -1610,6 +1650,7 @@
|
|
1610
1650
|
</xsl:attribute-set><xsl:attribute-set name="figure-name-style">
|
1611
1651
|
|
1612
1652
|
|
1653
|
+
|
1613
1654
|
|
1614
1655
|
|
1615
1656
|
|
@@ -1656,6 +1697,7 @@
|
|
1656
1697
|
|
1657
1698
|
|
1658
1699
|
|
1700
|
+
|
1659
1701
|
</xsl:attribute-set><xsl:attribute-set name="formula-stem-number-style">
|
1660
1702
|
<xsl:attribute name="text-align">right</xsl:attribute>
|
1661
1703
|
|
@@ -1677,16 +1719,16 @@
|
|
1677
1719
|
</xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
|
1678
1720
|
|
1679
1721
|
</xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
|
1722
|
+
<xsl:attribute name="width">100%</xsl:attribute>
|
1723
|
+
<xsl:attribute name="content-height">100%</xsl:attribute>
|
1724
|
+
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
1680
1725
|
|
1681
1726
|
|
1682
|
-
<xsl:attribute name="width">100%</xsl:attribute>
|
1683
1727
|
<xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
|
1684
|
-
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
1685
1728
|
|
1686
1729
|
|
1687
1730
|
|
1688
|
-
|
1689
|
-
|
1731
|
+
|
1690
1732
|
</xsl:attribute-set><xsl:attribute-set name="tt-style">
|
1691
1733
|
|
1692
1734
|
|
@@ -1765,10 +1807,29 @@
|
|
1765
1807
|
|
1766
1808
|
|
1767
1809
|
|
1810
|
+
|
1768
1811
|
<xsl:attribute name="provisional-distance-between-starts">3mm</xsl:attribute>
|
1769
1812
|
<xsl:attribute name="margin-left">7mm</xsl:attribute>
|
1770
1813
|
<xsl:attribute name="text-indent">0mm</xsl:attribute>
|
1771
1814
|
|
1815
|
+
</xsl:attribute-set><xsl:attribute-set name="list-name-style">
|
1816
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
1817
|
+
|
1818
|
+
|
1819
|
+
|
1820
|
+
|
1821
|
+
|
1822
|
+
|
1823
|
+
|
1824
|
+
|
1825
|
+
|
1826
|
+
|
1827
|
+
|
1828
|
+
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
1829
|
+
|
1830
|
+
|
1831
|
+
|
1832
|
+
|
1772
1833
|
</xsl:attribute-set><xsl:attribute-set name="list-item-style">
|
1773
1834
|
|
1774
1835
|
|
@@ -1813,6 +1874,7 @@
|
|
1813
1874
|
|
1814
1875
|
|
1815
1876
|
|
1877
|
+
|
1816
1878
|
<xsl:attribute name="font-size">55%</xsl:attribute>
|
1817
1879
|
<xsl:attribute name="vertical-align">super</xsl:attribute>
|
1818
1880
|
|
@@ -1839,6 +1901,7 @@
|
|
1839
1901
|
|
1840
1902
|
|
1841
1903
|
|
1904
|
+
|
1842
1905
|
<xsl:attribute name="font-size">9pt</xsl:attribute>
|
1843
1906
|
<xsl:attribute name="line-height">125%</xsl:attribute>
|
1844
1907
|
|
@@ -1861,6 +1924,7 @@
|
|
1861
1924
|
|
1862
1925
|
|
1863
1926
|
|
1927
|
+
|
1864
1928
|
<xsl:attribute name="font-size">60%</xsl:attribute>
|
1865
1929
|
<xsl:attribute name="padding-right">1mm</xsl:attribute>
|
1866
1930
|
<xsl:attribute name="vertical-align">super</xsl:attribute>
|
@@ -1880,6 +1944,7 @@
|
|
1880
1944
|
|
1881
1945
|
|
1882
1946
|
|
1947
|
+
|
1883
1948
|
<xsl:attribute name="border">0.25pt solid black</xsl:attribute>
|
1884
1949
|
<xsl:attribute name="margin-top">7mm</xsl:attribute>
|
1885
1950
|
<xsl:attribute name="margin-left">-9mm</xsl:attribute>
|
@@ -1888,6 +1953,9 @@
|
|
1888
1953
|
<xsl:attribute name="margin-bottom">16pt</xsl:attribute>
|
1889
1954
|
|
1890
1955
|
</xsl:attribute-set><xsl:attribute-set name="admonition-container-style">
|
1956
|
+
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
1957
|
+
<xsl:attribute name="margin-right">0mm</xsl:attribute>
|
1958
|
+
|
1891
1959
|
|
1892
1960
|
|
1893
1961
|
|
@@ -1937,6 +2005,7 @@
|
|
1937
2005
|
|
1938
2006
|
|
1939
2007
|
|
2008
|
+
|
1940
2009
|
<xsl:attribute name="text-align">justify</xsl:attribute>
|
1941
2010
|
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
|
1942
2011
|
|
@@ -1977,6 +2046,7 @@
|
|
1977
2046
|
|
1978
2047
|
|
1979
2048
|
|
2049
|
+
|
1980
2050
|
</xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-style">
|
1981
2051
|
|
1982
2052
|
|
@@ -1996,6 +2066,7 @@
|
|
1996
2066
|
|
1997
2067
|
|
1998
2068
|
|
2069
|
+
|
1999
2070
|
</xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-body-style">
|
2000
2071
|
|
2001
2072
|
|
@@ -2022,6 +2093,7 @@
|
|
2022
2093
|
|
2023
2094
|
|
2024
2095
|
|
2096
|
+
|
2025
2097
|
<xsl:attribute name="vertical-align">super</xsl:attribute>
|
2026
2098
|
|
2027
2099
|
</xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-number-style">
|
@@ -2042,6 +2114,7 @@
|
|
2042
2114
|
|
2043
2115
|
|
2044
2116
|
|
2117
|
+
|
2045
2118
|
<xsl:attribute name="font-size">60%</xsl:attribute>
|
2046
2119
|
<xsl:attribute name="vertical-align">super</xsl:attribute>
|
2047
2120
|
|
@@ -2060,6 +2133,7 @@
|
|
2060
2133
|
|
2061
2134
|
|
2062
2135
|
|
2136
|
+
|
2063
2137
|
</xsl:attribute-set><xsl:attribute-set name="references-non-normative-style">
|
2064
2138
|
|
2065
2139
|
|
@@ -2171,13 +2245,13 @@
|
|
2171
2245
|
|
2172
2246
|
</xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
|
2173
2247
|
<xsl:variable name="nodes_preface_">
|
2174
|
-
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2248
|
+
<xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
|
2175
2249
|
<node id="{@id}"/>
|
2176
2250
|
</xsl:for-each>
|
2177
2251
|
</xsl:variable>
|
2178
2252
|
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
2179
2253
|
|
2180
|
-
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2254
|
+
<xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
|
2181
2255
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2182
2256
|
|
2183
2257
|
<!-- process Section's title -->
|
@@ -2243,7 +2317,7 @@
|
|
2243
2317
|
</xsl:for-each>
|
2244
2318
|
</figures>
|
2245
2319
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
2246
|
-
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2320
|
+
<xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
|
2247
2321
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2248
2322
|
<xsl:apply-templates select="."/>
|
2249
2323
|
</xsl:for-each>
|
@@ -2297,7 +2371,38 @@
|
|
2297
2371
|
</xsl:template><xsl:template match="*[local-name()='br']">
|
2298
2372
|
<xsl:value-of select="$linebreak"/>
|
2299
2373
|
</xsl:template><xsl:template match="*[local-name() = 'keep-together_within-line']">
|
2300
|
-
<
|
2374
|
+
<xsl:param name="split_keep-within-line"/>
|
2375
|
+
|
2376
|
+
<!-- <fo:inline>split_keep-within-line='<xsl:value-of select="$split_keep-within-line"/>'</fo:inline> -->
|
2377
|
+
<xsl:choose>
|
2378
|
+
|
2379
|
+
<xsl:when test="normalize-space($split_keep-within-line) = 'true'">
|
2380
|
+
<xsl:variable name="sep">_</xsl:variable>
|
2381
|
+
<xsl:variable name="items">
|
2382
|
+
<xsl:call-template name="split">
|
2383
|
+
<xsl:with-param name="pText" select="."/>
|
2384
|
+
<xsl:with-param name="sep" select="$sep"/>
|
2385
|
+
<xsl:with-param name="normalize-space">false</xsl:with-param>
|
2386
|
+
<xsl:with-param name="keep_sep">true</xsl:with-param>
|
2387
|
+
</xsl:call-template>
|
2388
|
+
</xsl:variable>
|
2389
|
+
<xsl:for-each select="xalan:nodeset($items)/item">
|
2390
|
+
<xsl:choose>
|
2391
|
+
<xsl:when test=". = $sep">
|
2392
|
+
<xsl:value-of select="$sep"/><xsl:value-of select="$zero_width_space"/>
|
2393
|
+
</xsl:when>
|
2394
|
+
<xsl:otherwise>
|
2395
|
+
<fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
|
2396
|
+
</xsl:otherwise>
|
2397
|
+
</xsl:choose>
|
2398
|
+
</xsl:for-each>
|
2399
|
+
</xsl:when>
|
2400
|
+
|
2401
|
+
<xsl:otherwise>
|
2402
|
+
<fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
|
2403
|
+
</xsl:otherwise>
|
2404
|
+
|
2405
|
+
</xsl:choose>
|
2301
2406
|
</xsl:template><xsl:template match="*[local-name()='copyright-statement']">
|
2302
2407
|
<fo:block xsl:use-attribute-sets="copyright-statement-style">
|
2303
2408
|
<xsl:apply-templates/>
|
@@ -2389,9 +2494,14 @@
|
|
2389
2494
|
|
2390
2495
|
<xsl:variable name="table">
|
2391
2496
|
|
2392
|
-
<xsl:variable name="simple-table">
|
2393
|
-
<xsl:call-template name="getSimpleTable"
|
2497
|
+
<xsl:variable name="simple-table">
|
2498
|
+
<xsl:call-template name="getSimpleTable">
|
2499
|
+
<xsl:with-param name="id" select="@id"/>
|
2500
|
+
</xsl:call-template>
|
2394
2501
|
</xsl:variable>
|
2502
|
+
<!-- <xsl:variable name="simple-table" select="xalan:nodeset($simple-table_)"/> -->
|
2503
|
+
|
2504
|
+
<!-- simple-table=<xsl:copy-of select="$simple-table"/> -->
|
2395
2505
|
|
2396
2506
|
|
2397
2507
|
<!-- Display table's name before table as standalone block -->
|
@@ -2414,7 +2524,23 @@
|
|
2414
2524
|
</xsl:call-template>
|
2415
2525
|
</xsl:if>
|
2416
2526
|
</xsl:variable>
|
2417
|
-
<!--
|
2527
|
+
<!-- <xsl:variable name="colwidths" select="xalan:nodeset($colwidths_)"/> -->
|
2528
|
+
|
2529
|
+
<!-- DEBUG -->
|
2530
|
+
<xsl:if test="$table_if_debug = 'true'">
|
2531
|
+
<fo:block font-size="60%">
|
2532
|
+
<xsl:apply-templates select="xalan:nodeset($colwidths)" mode="print_as_xml"/>
|
2533
|
+
</fo:block>
|
2534
|
+
</xsl:if>
|
2535
|
+
|
2536
|
+
|
2537
|
+
<!-- <xsl:copy-of select="$colwidths"/> -->
|
2538
|
+
|
2539
|
+
<!-- <xsl:text disable-output-escaping="yes"><!- -</xsl:text>
|
2540
|
+
DEBUG
|
2541
|
+
colwidths=<xsl:copy-of select="$colwidths"/>
|
2542
|
+
<xsl:text disable-output-escaping="yes">- -></xsl:text> -->
|
2543
|
+
|
2418
2544
|
|
2419
2545
|
|
2420
2546
|
<xsl:variable name="margin-side">
|
@@ -2439,6 +2565,8 @@
|
|
2439
2565
|
|
2440
2566
|
|
2441
2567
|
|
2568
|
+
|
2569
|
+
|
2442
2570
|
|
2443
2571
|
|
2444
2572
|
|
@@ -2487,6 +2615,8 @@
|
|
2487
2615
|
|
2488
2616
|
|
2489
2617
|
|
2618
|
+
|
2619
|
+
|
2490
2620
|
<xsl:if test="ancestor::*[local-name()='sections']">
|
2491
2621
|
<xsl:attribute name="border-top">1.5pt solid black</xsl:attribute>
|
2492
2622
|
<xsl:attribute name="border-bottom">1.5pt solid black</xsl:attribute>
|
@@ -2495,9 +2625,17 @@
|
|
2495
2625
|
</xsl:element>
|
2496
2626
|
</xsl:variable>
|
2497
2627
|
|
2628
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
2629
|
+
<!-- to determine start of table -->
|
2630
|
+
<fo:block id="{concat('table_if_start_',@id)}" keep-with-next="always" font-size="1pt">Start table '<xsl:value-of select="@id"/>'.</fo:block>
|
2631
|
+
</xsl:if>
|
2498
2632
|
|
2499
2633
|
<fo:table id="{@id}">
|
2500
2634
|
|
2635
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
2636
|
+
<xsl:attribute name="wrap-option">no-wrap</xsl:attribute>
|
2637
|
+
</xsl:if>
|
2638
|
+
|
2501
2639
|
<xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
|
2502
2640
|
<xsl:attribute name="{local-name()}">
|
2503
2641
|
<xsl:value-of select="."/>
|
@@ -2511,24 +2649,47 @@
|
|
2511
2649
|
|
2512
2650
|
|
2513
2651
|
<xsl:choose>
|
2514
|
-
<xsl:when test="
|
2515
|
-
|
2516
|
-
|
2517
|
-
|
2652
|
+
<xsl:when test="$isGenerateTableIF = 'true'">
|
2653
|
+
<!-- generate IF for table widths -->
|
2654
|
+
<!-- example:
|
2655
|
+
<tr>
|
2656
|
+
<td valign="top" align="left" id="tab-symdu_1_1">
|
2657
|
+
<p>Symbol</p>
|
2658
|
+
<word id="tab-symdu_1_1_word_1">Symbol</word>
|
2659
|
+
</td>
|
2660
|
+
<td valign="top" align="left" id="tab-symdu_1_2">
|
2661
|
+
<p>Description</p>
|
2662
|
+
<word id="tab-symdu_1_2_word_1">Description</word>
|
2663
|
+
</td>
|
2664
|
+
</tr>
|
2665
|
+
-->
|
2666
|
+
<xsl:apply-templates select="xalan:nodeset($simple-table)" mode="process_table-if"/>
|
2667
|
+
|
2518
2668
|
</xsl:when>
|
2519
2669
|
<xsl:otherwise>
|
2520
|
-
<xsl:call-template name="insertTableColumnWidth">
|
2521
|
-
<xsl:with-param name="colwidths" select="$colwidths"/>
|
2522
|
-
</xsl:call-template>
|
2523
|
-
</xsl:otherwise>
|
2524
|
-
</xsl:choose>
|
2525
2670
|
|
2526
|
-
|
2527
|
-
|
2528
|
-
|
2529
|
-
|
2530
|
-
|
2531
|
-
|
2671
|
+
<xsl:choose>
|
2672
|
+
<xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
|
2673
|
+
<xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
|
2674
|
+
<fo:table-column column-width="{@width}"/>
|
2675
|
+
</xsl:for-each>
|
2676
|
+
</xsl:when>
|
2677
|
+
<xsl:otherwise>
|
2678
|
+
<xsl:call-template name="insertTableColumnWidth">
|
2679
|
+
<xsl:with-param name="colwidths" select="$colwidths"/>
|
2680
|
+
</xsl:call-template>
|
2681
|
+
</xsl:otherwise>
|
2682
|
+
</xsl:choose>
|
2683
|
+
|
2684
|
+
<xsl:choose>
|
2685
|
+
<xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
|
2686
|
+
<xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
|
2687
|
+
</xsl:when>
|
2688
|
+
<xsl:otherwise>
|
2689
|
+
<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 note that renders separaterely -->
|
2690
|
+
</xsl:otherwise>
|
2691
|
+
</xsl:choose>
|
2692
|
+
|
2532
2693
|
</xsl:otherwise>
|
2533
2694
|
</xsl:choose>
|
2534
2695
|
|
@@ -2603,23 +2764,29 @@
|
|
2603
2764
|
</xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
|
2604
2765
|
<xsl:param name="continued"/>
|
2605
2766
|
<xsl:if test="normalize-space() != ''">
|
2606
|
-
|
2607
|
-
|
2608
|
-
|
2609
|
-
|
2610
|
-
|
2767
|
+
|
2768
|
+
|
2611
2769
|
|
2612
|
-
|
2613
|
-
|
2770
|
+
<fo:block xsl:use-attribute-sets="table-name-style">
|
2771
|
+
|
2614
2772
|
|
2615
|
-
|
2616
|
-
|
2617
|
-
|
2618
|
-
|
2619
|
-
|
2620
|
-
|
2773
|
+
|
2774
|
+
|
2775
|
+
|
2776
|
+
<xsl:choose>
|
2777
|
+
<xsl:when test="$continued = 'true'">
|
2778
|
+
|
2779
|
+
</xsl:when>
|
2780
|
+
<xsl:otherwise>
|
2781
|
+
<xsl:apply-templates/>
|
2782
|
+
</xsl:otherwise>
|
2783
|
+
</xsl:choose>
|
2784
|
+
|
2785
|
+
|
2786
|
+
</fo:block>
|
2787
|
+
|
2621
2788
|
|
2622
|
-
|
2789
|
+
|
2623
2790
|
</xsl:if>
|
2624
2791
|
</xsl:template><xsl:template name="calculate-columns-numbers">
|
2625
2792
|
<xsl:param name="table-row"/>
|
@@ -2628,11 +2795,22 @@
|
|
2628
2795
|
<xsl:variable name="columns-with-colspan" select="count($table-row/*[@colspan])"/>
|
2629
2796
|
<xsl:value-of select="$columns-count + $sum-colspans - $columns-with-colspan"/>
|
2630
2797
|
</xsl:template><xsl:template name="calculate-column-widths">
|
2798
|
+
<xsl:param name="table"/>
|
2799
|
+
<xsl:param name="cols-count"/>
|
2800
|
+
|
2801
|
+
<xsl:call-template name="calculate-column-widths-proportional">
|
2802
|
+
<xsl:with-param name="cols-count" select="$cols-count"/>
|
2803
|
+
<xsl:with-param name="table" select="$table"/>
|
2804
|
+
</xsl:call-template>
|
2805
|
+
|
2806
|
+
</xsl:template><xsl:template name="calculate-column-widths-proportional">
|
2631
2807
|
<xsl:param name="table"/>
|
2632
2808
|
<xsl:param name="cols-count"/>
|
2633
2809
|
<xsl:param name="curr-col" select="1"/>
|
2634
2810
|
<xsl:param name="width" select="0"/>
|
2635
2811
|
|
2812
|
+
<!-- table=<xsl:copy-of select="$table"/> -->
|
2813
|
+
|
2636
2814
|
<xsl:if test="$curr-col <= $cols-count">
|
2637
2815
|
<xsl:variable name="widths">
|
2638
2816
|
<xsl:choose>
|
@@ -2670,10 +2848,15 @@
|
|
2670
2848
|
</xsl:for-each>
|
2671
2849
|
</xsl:when>
|
2672
2850
|
<xsl:otherwise>
|
2673
|
-
<xsl:
|
2851
|
+
<!-- <curr_col><xsl:value-of select="$curr-col"/></curr_col> -->
|
2852
|
+
|
2853
|
+
<!-- <table><xsl:copy-of select="$table"/></table>
|
2854
|
+
-->
|
2855
|
+
<xsl:for-each select="xalan:nodeset($table)/*/*[local-name()='tr']">
|
2674
2856
|
<xsl:variable name="td_text">
|
2675
2857
|
<xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
|
2676
2858
|
</xsl:variable>
|
2859
|
+
<!-- <td_text><xsl:value-of select="$td_text"/></td_text> -->
|
2677
2860
|
<xsl:variable name="words">
|
2678
2861
|
<xsl:variable name="string_with_added_zerospaces">
|
2679
2862
|
<xsl:call-template name="add-zero-spaces-java">
|
@@ -2688,6 +2871,7 @@
|
|
2688
2871
|
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
|
2689
2872
|
</xsl:call-template>
|
2690
2873
|
</xsl:variable>
|
2874
|
+
<!-- words=<xsl:copy-of select="$words"/> -->
|
2691
2875
|
<xsl:variable name="max_length">
|
2692
2876
|
<xsl:call-template name="max_length">
|
2693
2877
|
<xsl:with-param name="words" select="xalan:nodeset($words)"/>
|
@@ -2712,6 +2896,8 @@
|
|
2712
2896
|
</xsl:choose>
|
2713
2897
|
</xsl:variable>
|
2714
2898
|
|
2899
|
+
<!-- widths=<xsl:copy-of select="$widths"/> -->
|
2900
|
+
|
2715
2901
|
<column>
|
2716
2902
|
<xsl:for-each select="xalan:nodeset($widths)//width">
|
2717
2903
|
<xsl:sort select="." data-type="number" order="descending"/>
|
@@ -2720,33 +2906,271 @@
|
|
2720
2906
|
</xsl:if>
|
2721
2907
|
</xsl:for-each>
|
2722
2908
|
</column>
|
2723
|
-
<xsl:call-template name="calculate-column-widths">
|
2909
|
+
<xsl:call-template name="calculate-column-widths-proportional">
|
2724
2910
|
<xsl:with-param name="cols-count" select="$cols-count"/>
|
2725
2911
|
<xsl:with-param name="curr-col" select="$curr-col +1"/>
|
2726
2912
|
<xsl:with-param name="table" select="$table"/>
|
2727
2913
|
</xsl:call-template>
|
2728
2914
|
</xsl:if>
|
2729
|
-
</xsl:template><xsl:template match="*[@keep-together.within-line]/text()" priority="2" mode="td_text">
|
2915
|
+
</xsl:template><xsl:template match="*[@keep-together.within-line or local-name() = 'keep-together_within-line']/text()" priority="2" mode="td_text">
|
2730
2916
|
<!-- <xsl:message>DEBUG t1=<xsl:value-of select="."/></xsl:message>
|
2731
2917
|
<xsl:message>DEBUG t2=<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'.','X')"/></xsl:message> -->
|
2732
2918
|
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'.','X')"/>
|
2919
|
+
|
2920
|
+
<!-- if all capitals english letters or digits -->
|
2921
|
+
<xsl:if test="normalize-space(translate(., concat($upper,'0123456789'), '')) = ''">
|
2922
|
+
<xsl:call-template name="repeat">
|
2923
|
+
<xsl:with-param name="char" select="'X'"/>
|
2924
|
+
<xsl:with-param name="count" select="string-length(normalize-space(.)) * 0.5"/>
|
2925
|
+
</xsl:call-template>
|
2926
|
+
</xsl:if>
|
2733
2927
|
</xsl:template><xsl:template match="text()" mode="td_text">
|
2734
2928
|
<xsl:value-of select="translate(., $zero_width_space, ' ')"/><xsl:text> </xsl:text>
|
2735
2929
|
</xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
|
2736
2930
|
<xsl:value-of select="*[local-name()='origin']/@citeas"/>
|
2737
2931
|
</xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
|
2738
2932
|
<xsl:value-of select="@target"/>
|
2739
|
-
</xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
|
2740
|
-
<xsl:
|
2741
|
-
<xsl:
|
2742
|
-
<xsl:
|
2743
|
-
<xsl:
|
2744
|
-
|
2933
|
+
</xsl:template><xsl:template match="*[local-name()='math']" mode="td_text" name="math_length">
|
2934
|
+
<xsl:if test="$isGenerateTableIF = 'false'">
|
2935
|
+
<xsl:variable name="mathml_">
|
2936
|
+
<xsl:for-each select="*">
|
2937
|
+
<xsl:if test="local-name() != 'unit' and local-name() != 'prefix' and local-name() != 'dimension' and local-name() != 'quantity'">
|
2938
|
+
<xsl:copy-of select="."/>
|
2939
|
+
</xsl:if>
|
2940
|
+
</xsl:for-each>
|
2941
|
+
</xsl:variable>
|
2942
|
+
<xsl:variable name="mathml" select="xalan:nodeset($mathml_)"/>
|
2943
|
+
|
2944
|
+
<xsl:variable name="math_text">
|
2945
|
+
<xsl:value-of select="normalize-space($mathml)"/>
|
2946
|
+
<xsl:for-each select="$mathml//@open"><xsl:value-of select="."/></xsl:for-each>
|
2947
|
+
<xsl:for-each select="$mathml//@close"><xsl:value-of select="."/></xsl:for-each>
|
2948
|
+
</xsl:variable>
|
2949
|
+
<xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
|
2950
|
+
</xsl:if>
|
2951
|
+
</xsl:template><xsl:template name="calculate-column-widths-autolayout-algorithm">
|
2952
|
+
<xsl:param name="parent_table_page-width"/> <!-- for nested tables, in re-calculate step -->
|
2953
|
+
|
2954
|
+
<!-- via intermediate format -->
|
2955
|
+
|
2956
|
+
<!-- The algorithm uses two passes through the table data and scales linearly with the size of the table -->
|
2957
|
+
|
2958
|
+
<!-- In the first pass, line wrapping is disabled, and the user agent keeps track of the minimum and maximum width of each cell. -->
|
2959
|
+
|
2960
|
+
<!-- Since line wrap has been disabled, paragraphs are treated as long lines unless broken by BR elements. -->
|
2961
|
+
|
2962
|
+
<!-- get current table id -->
|
2963
|
+
<xsl:variable name="table_id" select="@id"/>
|
2964
|
+
<!-- find table by id in the file 'table_widths' -->
|
2965
|
+
<!-- <xsl:variable name="table-if_" select="$table_widths_from_if//table[@id = $table_id]"/>
|
2966
|
+
<xsl:variable name="table-if" select="xalan:nodeset($table-if_)"/> -->
|
2967
|
+
|
2968
|
+
<!-- table='<xsl:copy-of select="$table"/>' -->
|
2969
|
+
<!-- table_id='<xsl:value-of select="$table_id"/>\ -->
|
2970
|
+
<!-- table-if='<xsl:copy-of select="$table-if"/>' -->
|
2971
|
+
<!-- table_widths_from_if='<xsl:copy-of select="$table_widths_from_if"/>' -->
|
2972
|
+
|
2973
|
+
<xsl:variable name="table_with_cell_widths_">
|
2974
|
+
<xsl:apply-templates select="." mode="determine_cell_widths-if"/> <!-- read column's width from IF -->
|
2975
|
+
</xsl:variable>
|
2976
|
+
<xsl:variable name="table_with_cell_widths" select="xalan:nodeset($table_with_cell_widths_)"/>
|
2977
|
+
|
2978
|
+
<!-- <xsl:if test="$table_if_debug = 'true'">
|
2979
|
+
<xsl:copy-of select="$table_with_cell_widths"/>
|
2980
|
+
</xsl:if> -->
|
2981
|
+
|
2982
|
+
|
2983
|
+
<!-- The minimum and maximum cell widths are then used to determine the corresponding minimum and maximum widths for the columns. -->
|
2984
|
+
|
2985
|
+
<xsl:variable name="column_widths_">
|
2986
|
+
<!-- iteration of columns -->
|
2987
|
+
<xsl:for-each select="$table_with_cell_widths//tr[1]/td">
|
2988
|
+
<xsl:variable name="pos" select="position()"/>
|
2989
|
+
<column>
|
2990
|
+
<xsl:attribute name="width_max">
|
2991
|
+
<xsl:for-each select="ancestor::tbody//tr/td[$pos]/@width_max">
|
2992
|
+
<xsl:sort select="." data-type="number" order="descending"/>
|
2993
|
+
<xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
|
2994
|
+
</xsl:for-each>
|
2995
|
+
</xsl:attribute>
|
2996
|
+
<xsl:attribute name="width_min">
|
2997
|
+
<xsl:for-each select="ancestor::tbody//tr/td[$pos]/@width_min">
|
2998
|
+
<xsl:sort select="." data-type="number" order="descending"/>
|
2999
|
+
<xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
|
3000
|
+
</xsl:for-each>
|
3001
|
+
</xsl:attribute>
|
3002
|
+
</column>
|
2745
3003
|
</xsl:for-each>
|
2746
3004
|
</xsl:variable>
|
3005
|
+
<xsl:variable name="column_widths" select="xalan:nodeset($column_widths_)"/>
|
3006
|
+
|
3007
|
+
<!-- <column_widths>
|
3008
|
+
<xsl:copy-of select="$column_widths"/>
|
3009
|
+
</column_widths> -->
|
3010
|
+
|
3011
|
+
<!-- These in turn, are used to find the minimum and maximum width for the table. -->
|
3012
|
+
<xsl:variable name="table_widths_">
|
3013
|
+
<table>
|
3014
|
+
<xsl:attribute name="width_max">
|
3015
|
+
<xsl:value-of select="sum($column_widths/column/@width_max)"/>
|
3016
|
+
</xsl:attribute>
|
3017
|
+
<xsl:attribute name="width_min">
|
3018
|
+
<xsl:value-of select="sum($column_widths/column/@width_min)"/>
|
3019
|
+
</xsl:attribute>
|
3020
|
+
</table>
|
3021
|
+
</xsl:variable>
|
3022
|
+
<xsl:variable name="table_widths" select="xalan:nodeset($table_widths_)"/>
|
3023
|
+
|
3024
|
+
<xsl:variable name="page_width">
|
3025
|
+
<xsl:choose>
|
3026
|
+
<xsl:when test="$parent_table_page-width != ''">
|
3027
|
+
<xsl:value-of select="$parent_table_page-width"/>
|
3028
|
+
</xsl:when>
|
3029
|
+
<xsl:otherwise>
|
3030
|
+
<xsl:value-of select="@page-width"/>
|
3031
|
+
</xsl:otherwise>
|
3032
|
+
</xsl:choose>
|
3033
|
+
</xsl:variable>
|
3034
|
+
|
3035
|
+
<xsl:if test="$table_if_debug = 'true'">
|
3036
|
+
<table_width>
|
3037
|
+
<xsl:copy-of select="$table_widths"/>
|
3038
|
+
</table_width>
|
3039
|
+
<debug>$page_width=<xsl:value-of select="$page_width"/></debug>
|
3040
|
+
</xsl:if>
|
3041
|
+
|
2747
3042
|
|
2748
|
-
|
2749
|
-
<xsl:
|
3043
|
+
<!-- There are three cases: -->
|
3044
|
+
<xsl:choose>
|
3045
|
+
<!-- 1. The minimum table width is equal to or wider than the available space -->
|
3046
|
+
<xsl:when test="$table_widths/table/@width_min >= $page_width and 1 = 2"> <!-- this condition isn't working see case 3 below -->
|
3047
|
+
<!-- call old algorithm -->
|
3048
|
+
<case1/>
|
3049
|
+
<!-- <xsl:variable name="cols-count" select="count(xalan:nodeset($table)/*/tr[1]/td)"/>
|
3050
|
+
<xsl:call-template name="calculate-column-widths-proportional">
|
3051
|
+
<xsl:with-param name="cols-count" select="$cols-count"/>
|
3052
|
+
<xsl:with-param name="table" select="$table"/>
|
3053
|
+
</xsl:call-template> -->
|
3054
|
+
</xsl:when>
|
3055
|
+
<!-- 2. The maximum table width fits within the available space. In this case, set the columns to their maximum widths. -->
|
3056
|
+
<xsl:when test="$table_widths/table/@width_max <= $page_width">
|
3057
|
+
<case2/>
|
3058
|
+
<autolayout/>
|
3059
|
+
<xsl:for-each select="$column_widths/column/@width_max">
|
3060
|
+
<column divider="100"><xsl:value-of select="."/></column>
|
3061
|
+
</xsl:for-each>
|
3062
|
+
</xsl:when>
|
3063
|
+
<!-- 3. The maximum width of the table is greater than the available space, but the minimum table width is smaller.
|
3064
|
+
In this case, find the difference between the available space and the minimum table width, lets call it W.
|
3065
|
+
Lets also call D the difference between maximum and minimum width of the table.
|
3066
|
+
For each column, let d be the difference between maximum and minimum width of that column.
|
3067
|
+
Now set the column's width to the minimum width plus d times W over D.
|
3068
|
+
This makes columns with large differences between minimum and maximum widths wider than columns with smaller differences. -->
|
3069
|
+
<xsl:when test="($table_widths/table/@width_max > $page_width and $table_widths/table/@width_min < $page_width) or ($table_widths/table/@width_min >= $page_width)">
|
3070
|
+
<!-- difference between the available space and the minimum table width -->
|
3071
|
+
<xsl:variable name="W" select="$page_width - $table_widths/table/@width_min"/>
|
3072
|
+
<W><xsl:value-of select="$W"/></W>
|
3073
|
+
<!-- difference between maximum and minimum width of the table -->
|
3074
|
+
<xsl:variable name="D" select="$table_widths/table/@width_max - $table_widths/table/@width_min"/>
|
3075
|
+
<D><xsl:value-of select="$D"/></D>
|
3076
|
+
<case3/>
|
3077
|
+
<autolayout/>
|
3078
|
+
<xsl:if test="$table_widths/table/@width_min >= $page_width">
|
3079
|
+
<split_keep-within-line>true</split_keep-within-line>
|
3080
|
+
</xsl:if>
|
3081
|
+
<xsl:for-each select="$column_widths/column">
|
3082
|
+
<!-- difference between maximum and minimum width of that column. -->
|
3083
|
+
<xsl:variable name="d" select="@width_max - @width_min"/>
|
3084
|
+
<d><xsl:value-of select="$d"/></d>
|
3085
|
+
<width_min><xsl:value-of select="@width_min"/></width_min>
|
3086
|
+
<e><xsl:value-of select="$d * $W div $D"/></e>
|
3087
|
+
<!-- set the column's width to the minimum width plus d times W over D. -->
|
3088
|
+
<column divider="100">
|
3089
|
+
<xsl:value-of select="round(@width_min + $d * $W div $D)"/> <!-- * 10 -->
|
3090
|
+
</column>
|
3091
|
+
</xsl:for-each>
|
3092
|
+
|
3093
|
+
</xsl:when>
|
3094
|
+
<xsl:otherwise><unknown_case/></xsl:otherwise>
|
3095
|
+
</xsl:choose>
|
3096
|
+
|
3097
|
+
</xsl:template><xsl:template name="get-calculated-column-widths-autolayout-algorithm">
|
3098
|
+
|
3099
|
+
<!-- if nested 'dl' or 'table' -->
|
3100
|
+
<xsl:variable name="parent_table_id" select="normalize-space(ancestor::*[local-name() = 'table' or local-name() = 'dl'][1]/@id)"/>
|
3101
|
+
<parent_table_id><xsl:value-of select="$parent_table_id"/></parent_table_id>
|
3102
|
+
|
3103
|
+
<parent_element><xsl:value-of select="local-name(..)"/></parent_element>
|
3104
|
+
|
3105
|
+
<xsl:variable name="parent_table_page-width_">
|
3106
|
+
<xsl:if test="$parent_table_id != ''">
|
3107
|
+
<!-- determine column number in the parent table -->
|
3108
|
+
<xsl:variable name="parent_table_column_number">
|
3109
|
+
<xsl:choose>
|
3110
|
+
<xsl:when test="parent::*[local-name() = 'dd']">2</xsl:when>
|
3111
|
+
<xsl:otherwise> <!-- parent is table -->
|
3112
|
+
<xsl:value-of select="count(ancestor::*[local-name() = 'td'][1]/preceding-sibling::*[local-name() = 'td']) + 1"/>
|
3113
|
+
</xsl:otherwise>
|
3114
|
+
</xsl:choose>
|
3115
|
+
</xsl:variable>
|
3116
|
+
<!-- find table by id in the file 'table_widths' and get all Nth `<column>...</column> -->
|
3117
|
+
<xsl:value-of select="$table_widths_from_if_calculated//table[@id = $parent_table_id]/column[number($parent_table_column_number)]"/>
|
3118
|
+
</xsl:if>
|
3119
|
+
</xsl:variable>
|
3120
|
+
<xsl:variable name="parent_table_page-width" select="normalize-space($parent_table_page-width_)"/>
|
3121
|
+
|
3122
|
+
<!-- get current table id -->
|
3123
|
+
<xsl:variable name="table_id" select="@id"/>
|
3124
|
+
|
3125
|
+
<xsl:choose>
|
3126
|
+
<xsl:when test="$parent_table_id = '' or $parent_table_page-width = ''">
|
3127
|
+
<!-- find table by id in the file 'table_widths' and get all `<column>...</column> -->
|
3128
|
+
<xsl:copy-of select="$table_widths_from_if_calculated//table[@id = $table_id]/node()"/>
|
3129
|
+
</xsl:when>
|
3130
|
+
<xsl:otherwise>
|
3131
|
+
<!-- recalculate columns width based on parent table width -->
|
3132
|
+
<xsl:for-each select="$table_widths_from_if//table[@id = $table_id]">
|
3133
|
+
<xsl:call-template name="calculate-column-widths-autolayout-algorithm">
|
3134
|
+
<xsl:with-param name="parent_table_page-width" select="$parent_table_page-width"/> <!-- padding-left = 2mm = 50000-->
|
3135
|
+
</xsl:call-template>
|
3136
|
+
</xsl:for-each>
|
3137
|
+
</xsl:otherwise>
|
3138
|
+
</xsl:choose>
|
3139
|
+
|
3140
|
+
</xsl:template><xsl:template match="@*|node()" mode="determine_cell_widths-if">
|
3141
|
+
<xsl:copy>
|
3142
|
+
<xsl:apply-templates select="@*|node()" mode="determine_cell_widths-if"/>
|
3143
|
+
</xsl:copy>
|
3144
|
+
</xsl:template><xsl:template match="td | th" mode="determine_cell_widths-if">
|
3145
|
+
<xsl:copy>
|
3146
|
+
<xsl:copy-of select="@*"/>
|
3147
|
+
|
3148
|
+
<!-- The maximum width is given by the widest line. -->
|
3149
|
+
<xsl:attribute name="width_max">
|
3150
|
+
<xsl:for-each select="p_len">
|
3151
|
+
<xsl:sort select="." data-type="number" order="descending"/>
|
3152
|
+
<xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
|
3153
|
+
</xsl:for-each>
|
3154
|
+
</xsl:attribute>
|
3155
|
+
|
3156
|
+
<!-- The minimum width is given by the widest text element (word, image, etc.) -->
|
3157
|
+
<xsl:variable name="width_min">
|
3158
|
+
<xsl:for-each select="word_len">
|
3159
|
+
<xsl:sort select="." data-type="number" order="descending"/>
|
3160
|
+
<xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
|
3161
|
+
</xsl:for-each>
|
3162
|
+
</xsl:variable>
|
3163
|
+
<xsl:attribute name="width_min">
|
3164
|
+
<xsl:value-of select="$width_min"/>
|
3165
|
+
</xsl:attribute>
|
3166
|
+
|
3167
|
+
<xsl:if test="$width_min = 0">
|
3168
|
+
<xsl:attribute name="width_min">1</xsl:attribute>
|
3169
|
+
</xsl:if>
|
3170
|
+
|
3171
|
+
<xsl:apply-templates select="node()" mode="determine_cell_widths-if"/>
|
3172
|
+
|
3173
|
+
</xsl:copy>
|
2750
3174
|
</xsl:template><xsl:template match="*[local-name()='thead']">
|
2751
3175
|
<xsl:param name="cols-count"/>
|
2752
3176
|
<fo:table-header>
|
@@ -2760,12 +3184,18 @@
|
|
2760
3184
|
<fo:table-row>
|
2761
3185
|
<fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
|
2762
3186
|
|
2763
|
-
<xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
|
2764
|
-
<xsl:with-param name="continued">true</xsl:with-param>
|
2765
|
-
</xsl:apply-templates>
|
2766
3187
|
|
2767
3188
|
|
2768
3189
|
|
3190
|
+
<xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
|
3191
|
+
<xsl:with-param name="continued">true</xsl:with-param>
|
3192
|
+
</xsl:apply-templates>
|
3193
|
+
|
3194
|
+
|
3195
|
+
|
3196
|
+
|
3197
|
+
|
3198
|
+
|
2769
3199
|
</fo:table-cell>
|
2770
3200
|
</fo:table-row>
|
2771
3201
|
</xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
|
@@ -2831,6 +3261,7 @@
|
|
2831
3261
|
</xsl:for-each>
|
2832
3262
|
</xsl:when>
|
2833
3263
|
<xsl:otherwise>
|
3264
|
+
<!-- $colwidths=<xsl:copy-of select="$colwidths"/> -->
|
2834
3265
|
<xsl:call-template name="insertTableColumnWidth">
|
2835
3266
|
<xsl:with-param name="colwidths" select="$colwidths"/>
|
2836
3267
|
</xsl:call-template>
|
@@ -2865,7 +3296,10 @@
|
|
2865
3296
|
|
2866
3297
|
|
2867
3298
|
<!-- fn processing -->
|
2868
|
-
|
3299
|
+
|
3300
|
+
<xsl:call-template name="table_fn_display"/>
|
3301
|
+
|
3302
|
+
|
2869
3303
|
|
2870
3304
|
<!-- for PAS display Notes after footnotes -->
|
2871
3305
|
|
@@ -2875,6 +3309,9 @@
|
|
2875
3309
|
</fo:table-body>
|
2876
3310
|
|
2877
3311
|
</fo:table>
|
3312
|
+
|
3313
|
+
|
3314
|
+
|
2878
3315
|
</xsl:if>
|
2879
3316
|
</xsl:template><xsl:template match="*[local-name()='tbody']">
|
2880
3317
|
|
@@ -2910,6 +3347,52 @@
|
|
2910
3347
|
|
2911
3348
|
</fo:table-body>
|
2912
3349
|
|
3350
|
+
</xsl:template><xsl:template match="/" mode="process_table-if">
|
3351
|
+
<xsl:param name="table_or_dl">table</xsl:param>
|
3352
|
+
<xsl:apply-templates mode="process_table-if">
|
3353
|
+
<xsl:with-param name="table_or_dl" select="$table_or_dl"/>
|
3354
|
+
</xsl:apply-templates>
|
3355
|
+
</xsl:template><xsl:template match="*[local-name()='tbody']" mode="process_table-if">
|
3356
|
+
<xsl:param name="table_or_dl">table</xsl:param>
|
3357
|
+
|
3358
|
+
<fo:table-body>
|
3359
|
+
<xsl:for-each select="*[local-name() = 'tr']">
|
3360
|
+
<xsl:variable name="col_count" select="count(*)"/>
|
3361
|
+
|
3362
|
+
<!-- iteration for each tr/td -->
|
3363
|
+
|
3364
|
+
<xsl:choose>
|
3365
|
+
<xsl:when test="$table_or_dl = 'table'">
|
3366
|
+
<xsl:for-each select="*[local-name() = 'td' or local-name() = 'th']/*">
|
3367
|
+
<fo:table-row number-columns-spanned="{$col_count}">
|
3368
|
+
<!-- <test_table><xsl:copy-of select="."/></test_table> -->
|
3369
|
+
<xsl:call-template name="td"/>
|
3370
|
+
</fo:table-row>
|
3371
|
+
</xsl:for-each>
|
3372
|
+
</xsl:when>
|
3373
|
+
<xsl:otherwise> <!-- $table_or_dl = 'dl' -->
|
3374
|
+
<xsl:for-each select="*[local-name() = 'td' or local-name() = 'th']">
|
3375
|
+
<xsl:variable name="is_dt" select="position() = 1"/>
|
3376
|
+
|
3377
|
+
<xsl:for-each select="*">
|
3378
|
+
<!-- <test><xsl:copy-of select="."/></test> -->
|
3379
|
+
<fo:table-row number-columns-spanned="{$col_count}">
|
3380
|
+
<xsl:choose>
|
3381
|
+
<xsl:when test="$is_dt">
|
3382
|
+
<xsl:call-template name="insert_dt_cell"/>
|
3383
|
+
</xsl:when>
|
3384
|
+
<xsl:otherwise>
|
3385
|
+
<xsl:call-template name="insert_dd_cell"/>
|
3386
|
+
</xsl:otherwise>
|
3387
|
+
</xsl:choose>
|
3388
|
+
</fo:table-row>
|
3389
|
+
</xsl:for-each>
|
3390
|
+
</xsl:for-each>
|
3391
|
+
</xsl:otherwise>
|
3392
|
+
</xsl:choose>
|
3393
|
+
|
3394
|
+
</xsl:for-each>
|
3395
|
+
</fo:table-body>
|
2913
3396
|
</xsl:template><xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
|
2914
3397
|
<fo:table-row xsl:use-attribute-sets="table-header-row-style">
|
2915
3398
|
|
@@ -2917,6 +3400,9 @@
|
|
2917
3400
|
|
2918
3401
|
|
2919
3402
|
|
3403
|
+
|
3404
|
+
|
3405
|
+
|
2920
3406
|
|
2921
3407
|
|
2922
3408
|
<xsl:call-template name="setTableRowAttributes"/>
|
@@ -2936,6 +3422,8 @@
|
|
2936
3422
|
|
2937
3423
|
|
2938
3424
|
|
3425
|
+
|
3426
|
+
|
2939
3427
|
<xsl:call-template name="setTableRowAttributes"/>
|
2940
3428
|
<xsl:apply-templates/>
|
2941
3429
|
</fo:table-row>
|
@@ -3011,7 +3499,7 @@
|
|
3011
3499
|
</xsl:choose>
|
3012
3500
|
</xsl:attribute>
|
3013
3501
|
</xsl:if>
|
3014
|
-
</xsl:template><xsl:template match="*[local-name()='td']">
|
3502
|
+
</xsl:template><xsl:template match="*[local-name()='td']" name="td">
|
3015
3503
|
<fo:table-cell xsl:use-attribute-sets="table-cell-style"> <!-- text-align="{@align}" -->
|
3016
3504
|
<xsl:call-template name="setTextAlignment">
|
3017
3505
|
<xsl:with-param name="default">left</xsl:with-param>
|
@@ -3032,6 +3520,8 @@
|
|
3032
3520
|
|
3033
3521
|
|
3034
3522
|
|
3523
|
+
|
3524
|
+
|
3035
3525
|
|
3036
3526
|
|
3037
3527
|
|
@@ -3050,11 +3540,24 @@
|
|
3050
3540
|
|
3051
3541
|
<xsl:call-template name="setTableCellAttributes"/>
|
3052
3542
|
|
3543
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
3544
|
+
<xsl:attribute name="border">1pt solid black</xsl:attribute> <!-- border is mandatory, to determine page width -->
|
3545
|
+
<xsl:attribute name="text-align">left</xsl:attribute>
|
3546
|
+
</xsl:if>
|
3547
|
+
|
3053
3548
|
<fo:block>
|
3054
3549
|
|
3550
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
3551
|
+
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
|
3552
|
+
</xsl:if>
|
3553
|
+
|
3554
|
+
|
3055
3555
|
|
3056
3556
|
|
3057
3557
|
<xsl:apply-templates/>
|
3558
|
+
|
3559
|
+
<xsl:if test="$isGenerateTableIF = 'true'"><fo:inline id="{@id}_end">end</fo:inline></xsl:if> <!-- to determine width of text --> <!-- <xsl:value-of select="$hair_space"/> -->
|
3560
|
+
|
3058
3561
|
</fo:block>
|
3059
3562
|
</fo:table-cell>
|
3060
3563
|
</xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2">
|
@@ -3099,7 +3602,11 @@
|
|
3099
3602
|
|
3100
3603
|
<xsl:variable name="gen_id" select="generate-id(.)"/>
|
3101
3604
|
<xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
|
3102
|
-
<xsl:variable name="
|
3605
|
+
<xsl:variable name="reference_">
|
3606
|
+
<xsl:value-of select="@reference"/>
|
3607
|
+
<xsl:if test="normalize-space(@reference) = ''"><xsl:value-of select="$gen_id"/></xsl:if>
|
3608
|
+
</xsl:variable>
|
3609
|
+
<xsl:variable name="reference" select="normalize-space($reference_)"/>
|
3103
3610
|
<!-- fn sequence number in document -->
|
3104
3611
|
<xsl:variable name="current_fn_number">
|
3105
3612
|
<xsl:choose>
|
@@ -3174,7 +3681,7 @@
|
|
3174
3681
|
<xsl:copy-of select="node()"/>
|
3175
3682
|
</fn>
|
3176
3683
|
</xsl:for-each>
|
3177
|
-
<xsl:for-each select="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']/*">
|
3684
|
+
<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']/*">
|
3178
3685
|
<xsl:sort select="@displayorder" data-type="number"/>
|
3179
3686
|
<xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
|
3180
3687
|
<!-- copy unique fn -->
|
@@ -3255,9 +3762,9 @@
|
|
3255
3762
|
<!-- current hierarchy is 'figure' element -->
|
3256
3763
|
<xsl:variable name="following_dl_colwidths">
|
3257
3764
|
<xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
|
3258
|
-
<xsl:variable name="
|
3259
|
-
<xsl:variable name="doc_ns">
|
3260
|
-
|
3765
|
+
<xsl:variable name="simple-table">
|
3766
|
+
<!-- <xsl:variable name="doc_ns">
|
3767
|
+
<xsl:if test="$namespace = 'bipm'">bipm</xsl:if>
|
3261
3768
|
</xsl:variable>
|
3262
3769
|
<xsl:variable name="ns">
|
3263
3770
|
<xsl:choose>
|
@@ -3268,7 +3775,7 @@
|
|
3268
3775
|
<xsl:value-of select="substring-before(name(/*), '-')"/>
|
3269
3776
|
</xsl:otherwise>
|
3270
3777
|
</xsl:choose>
|
3271
|
-
</xsl:variable>
|
3778
|
+
</xsl:variable> -->
|
3272
3779
|
|
3273
3780
|
<xsl:for-each select="*[local-name() = 'dl'][1]">
|
3274
3781
|
<tbody>
|
@@ -3279,7 +3786,7 @@
|
|
3279
3786
|
|
3280
3787
|
<xsl:call-template name="calculate-column-widths">
|
3281
3788
|
<xsl:with-param name="cols-count" select="2"/>
|
3282
|
-
<xsl:with-param name="table" select="$
|
3789
|
+
<xsl:with-param name="table" select="$simple-table"/>
|
3283
3790
|
</xsl:call-template>
|
3284
3791
|
|
3285
3792
|
</xsl:if>
|
@@ -3454,12 +3961,31 @@
|
|
3454
3961
|
|
3455
3962
|
|
3456
3963
|
|
3964
|
+
|
3965
|
+
<xsl:if test="ancestor::*[local-name() = 'dd' or local-name() = 'td']">
|
3966
|
+
<xsl:attribute name="margin-top">0</xsl:attribute>
|
3967
|
+
</xsl:if>
|
3968
|
+
|
3457
3969
|
<fo:block>
|
3458
3970
|
|
3459
3971
|
|
3460
3972
|
|
3461
3973
|
|
3974
|
+
<xsl:apply-templates select="*[local-name() = 'name']">
|
3975
|
+
<xsl:with-param name="process">true</xsl:with-param>
|
3976
|
+
</xsl:apply-templates>
|
3977
|
+
|
3978
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
3979
|
+
<!-- to determine start of table -->
|
3980
|
+
<fo:block id="{concat('table_if_start_',@id)}" keep-with-next="always" font-size="1pt">Start table '<xsl:value-of select="@id"/>'.</fo:block>
|
3981
|
+
</xsl:if>
|
3982
|
+
|
3462
3983
|
<fo:table width="95%" table-layout="fixed">
|
3984
|
+
|
3985
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
3986
|
+
<xsl:attribute name="wrap-option">no-wrap</xsl:attribute>
|
3987
|
+
</xsl:if>
|
3988
|
+
|
3463
3989
|
|
3464
3990
|
<xsl:choose>
|
3465
3991
|
<xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'"/>
|
@@ -3468,69 +3994,173 @@
|
|
3468
3994
|
|
3469
3995
|
</xsl:when>
|
3470
3996
|
</xsl:choose>
|
3471
|
-
|
3472
|
-
|
3473
|
-
|
3997
|
+
|
3998
|
+
|
3999
|
+
|
4000
|
+
<xsl:choose>
|
4001
|
+
<xsl:when test="$isGenerateTableIF = 'true'">
|
4002
|
+
<!-- generate IF for table widths -->
|
4003
|
+
<!-- example:
|
4004
|
+
<tr>
|
4005
|
+
<td valign="top" align="left" id="tab-symdu_1_1">
|
4006
|
+
<p>Symbol</p>
|
4007
|
+
<word id="tab-symdu_1_1_word_1">Symbol</word>
|
4008
|
+
</td>
|
4009
|
+
<td valign="top" align="left" id="tab-symdu_1_2">
|
4010
|
+
<p>Description</p>
|
4011
|
+
<word id="tab-symdu_1_2_word_1">Description</word>
|
4012
|
+
</td>
|
4013
|
+
</tr>
|
4014
|
+
-->
|
3474
4015
|
|
3475
|
-
|
3476
|
-
|
3477
|
-
|
3478
|
-
<xsl:
|
3479
|
-
<
|
3480
|
-
|
3481
|
-
|
3482
|
-
|
3483
|
-
|
3484
|
-
|
3485
|
-
|
3486
|
-
|
3487
|
-
|
3488
|
-
|
3489
|
-
|
3490
|
-
|
3491
|
-
|
3492
|
-
|
3493
|
-
|
3494
|
-
|
3495
|
-
|
3496
|
-
|
3497
|
-
|
3498
|
-
|
3499
|
-
|
3500
|
-
|
3501
|
-
|
3502
|
-
|
3503
|
-
|
3504
|
-
|
3505
|
-
|
3506
|
-
|
3507
|
-
|
3508
|
-
|
3509
|
-
|
3510
|
-
|
4016
|
+
<!-- create virtual html table for dl/[dt and dd] -->
|
4017
|
+
<xsl:variable name="simple-table">
|
4018
|
+
|
4019
|
+
<xsl:variable name="dl_table">
|
4020
|
+
<tbody>
|
4021
|
+
<xsl:apply-templates mode="dl_if">
|
4022
|
+
<xsl:with-param name="id" select="@id"/>
|
4023
|
+
</xsl:apply-templates>
|
4024
|
+
</tbody>
|
4025
|
+
</xsl:variable>
|
4026
|
+
|
4027
|
+
<!-- dl_table='<xsl:copy-of select="$dl_table"/>' -->
|
4028
|
+
|
4029
|
+
<!-- Step: replace <br/> to <p>...</p> -->
|
4030
|
+
<xsl:variable name="table_without_br">
|
4031
|
+
<xsl:apply-templates select="xalan:nodeset($dl_table)" mode="table-without-br"/>
|
4032
|
+
</xsl:variable>
|
4033
|
+
|
4034
|
+
<!-- table_without_br='<xsl:copy-of select="$table_without_br"/>' -->
|
4035
|
+
|
4036
|
+
<!-- Step: add id to each cell -->
|
4037
|
+
<!-- add <word>...</word> for each word, image, math -->
|
4038
|
+
<xsl:variable name="simple-table-id">
|
4039
|
+
<xsl:apply-templates select="xalan:nodeset($table_without_br)" mode="simple-table-id">
|
4040
|
+
<xsl:with-param name="id" select="@id"/>
|
4041
|
+
</xsl:apply-templates>
|
4042
|
+
</xsl:variable>
|
4043
|
+
|
4044
|
+
<!-- simple-table-id='<xsl:copy-of select="$simple-table-id"/>' -->
|
4045
|
+
|
4046
|
+
<xsl:copy-of select="xalan:nodeset($simple-table-id)"/>
|
4047
|
+
|
4048
|
+
</xsl:variable>
|
4049
|
+
|
4050
|
+
<!-- DEBUG: simple-table<xsl:copy-of select="$simple-table"/> -->
|
4051
|
+
|
4052
|
+
<xsl:apply-templates select="xalan:nodeset($simple-table)" mode="process_table-if">
|
4053
|
+
<xsl:with-param name="table_or_dl">dl</xsl:with-param>
|
4054
|
+
</xsl:apply-templates>
|
4055
|
+
|
4056
|
+
</xsl:when>
|
4057
|
+
<xsl:otherwise>
|
3511
4058
|
|
3512
|
-
|
3513
|
-
|
3514
|
-
|
3515
|
-
|
3516
|
-
|
4059
|
+
<xsl:variable name="simple-table">
|
4060
|
+
|
4061
|
+
<xsl:variable name="dl_table">
|
4062
|
+
<tbody>
|
4063
|
+
<xsl:apply-templates mode="dl">
|
4064
|
+
<xsl:with-param name="id" select="@id"/>
|
4065
|
+
</xsl:apply-templates>
|
4066
|
+
</tbody>
|
4067
|
+
</xsl:variable>
|
4068
|
+
|
4069
|
+
<xsl:copy-of select="$dl_table"/>
|
4070
|
+
</xsl:variable>
|
4071
|
+
|
4072
|
+
<xsl:variable name="colwidths">
|
4073
|
+
<xsl:call-template name="calculate-column-widths">
|
4074
|
+
<xsl:with-param name="cols-count" select="2"/>
|
4075
|
+
<xsl:with-param name="table" select="$simple-table"/>
|
4076
|
+
</xsl:call-template>
|
4077
|
+
</xsl:variable>
|
4078
|
+
|
4079
|
+
<!-- <xsl:text disable-output-escaping="yes"><!- -</xsl:text>
|
4080
|
+
DEBUG
|
4081
|
+
colwidths=<xsl:copy-of select="$colwidths"/>
|
4082
|
+
<xsl:text disable-output-escaping="yes">- -></xsl:text> -->
|
4083
|
+
|
4084
|
+
<!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
|
4085
|
+
|
4086
|
+
<xsl:variable name="maxlength_dt">
|
4087
|
+
<xsl:call-template name="getMaxLength_dt"/>
|
4088
|
+
</xsl:variable>
|
4089
|
+
|
4090
|
+
<xsl:variable name="isContainsKeepTogetherTag_">
|
4091
|
+
false
|
4092
|
+
</xsl:variable>
|
4093
|
+
<xsl:variable name="isContainsKeepTogetherTag" select="normalize-space($isContainsKeepTogetherTag_)"/>
|
4094
|
+
<!-- isContainsExpressReference=<xsl:value-of select="$isContainsExpressReference"/> -->
|
4095
|
+
|
4096
|
+
|
4097
|
+
<xsl:call-template name="setColumnWidth_dl">
|
4098
|
+
<xsl:with-param name="colwidths" select="$colwidths"/>
|
4099
|
+
<xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
|
4100
|
+
<xsl:with-param name="isContainsKeepTogetherTag" select="$isContainsKeepTogetherTag"/>
|
4101
|
+
</xsl:call-template>
|
4102
|
+
|
4103
|
+
<fo:table-body>
|
4104
|
+
|
4105
|
+
<!-- DEBUG -->
|
4106
|
+
<xsl:if test="$table_if_debug = 'true'">
|
4107
|
+
<fo:table-row>
|
4108
|
+
<fo:table-cell number-columns-spanned="2" font-size="60%">
|
4109
|
+
<xsl:apply-templates select="xalan:nodeset($colwidths)" mode="print_as_xml"/>
|
4110
|
+
</fo:table-cell>
|
4111
|
+
</fo:table-row>
|
4112
|
+
</xsl:if>
|
4113
|
+
|
4114
|
+
<xsl:apply-templates>
|
4115
|
+
<xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
|
4116
|
+
<xsl:with-param name="split_keep-within-line" select="xalan:nodeset($colwidths)/split_keep-within-line"/>
|
4117
|
+
</xsl:apply-templates>
|
4118
|
+
|
4119
|
+
</fo:table-body>
|
4120
|
+
</xsl:otherwise>
|
4121
|
+
</xsl:choose>
|
3517
4122
|
</fo:table>
|
3518
4123
|
</fo:block>
|
3519
4124
|
</fo:block>
|
3520
4125
|
</xsl:if> <!-- END: a few components -->
|
3521
4126
|
</fo:block-container>
|
3522
4127
|
</fo:block-container>
|
4128
|
+
|
4129
|
+
<xsl:if test="$isGenerateTableIF = 'true'"> <!-- process nested 'dl' -->
|
4130
|
+
<xsl:apply-templates select="*[local-name() = 'dd']/*[local-name() = 'dl']"/>
|
4131
|
+
</xsl:if>
|
4132
|
+
|
4133
|
+
</xsl:template><xsl:template match="*[local-name() = 'dl']/*[local-name() = 'name']">
|
4134
|
+
<xsl:param name="process">false</xsl:param>
|
4135
|
+
<xsl:if test="$process = 'true'">
|
4136
|
+
<fo:block xsl:use-attribute-sets="dl-name-style">
|
4137
|
+
<xsl:apply-templates/>
|
4138
|
+
</fo:block>
|
4139
|
+
</xsl:if>
|
3523
4140
|
</xsl:template><xsl:template name="setColumnWidth_dl">
|
3524
4141
|
<xsl:param name="colwidths"/>
|
3525
4142
|
<xsl:param name="maxlength_dt"/>
|
3526
4143
|
<xsl:param name="isContainsKeepTogetherTag"/>
|
4144
|
+
|
4145
|
+
<!-- <colwidths><xsl:copy-of select="$colwidths"/></colwidths> -->
|
4146
|
+
|
3527
4147
|
<xsl:choose>
|
4148
|
+
<xsl:when test="xalan:nodeset($colwidths)/autolayout">
|
4149
|
+
<xsl:call-template name="insertTableColumnWidth">
|
4150
|
+
<xsl:with-param name="colwidths" select="$colwidths"/>
|
4151
|
+
</xsl:call-template>
|
4152
|
+
</xsl:when>
|
3528
4153
|
<xsl:when test="ancestor::*[local-name()='dl']"><!-- second level, i.e. inlined table -->
|
3529
4154
|
<fo:table-column column-width="50%"/>
|
3530
4155
|
<fo:table-column column-width="50%"/>
|
3531
4156
|
</xsl:when>
|
3532
4157
|
<xsl:otherwise>
|
3533
4158
|
<xsl:choose>
|
4159
|
+
<xsl:when test="xalan:nodeset($colwidths)/autolayout">
|
4160
|
+
<xsl:call-template name="insertTableColumnWidth">
|
4161
|
+
<xsl:with-param name="colwidths" select="$colwidths"/>
|
4162
|
+
</xsl:call-template>
|
4163
|
+
</xsl:when>
|
3534
4164
|
<xsl:when test="$isContainsKeepTogetherTag">
|
3535
4165
|
<xsl:call-template name="insertTableColumnWidth">
|
3536
4166
|
<xsl:with-param name="colwidths" select="$colwidths"/>
|
@@ -3575,13 +4205,19 @@
|
|
3575
4205
|
</xsl:choose>
|
3576
4206
|
</xsl:template><xsl:template name="insertTableColumnWidth">
|
3577
4207
|
<xsl:param name="colwidths"/>
|
4208
|
+
|
3578
4209
|
<xsl:for-each select="xalan:nodeset($colwidths)//column">
|
3579
4210
|
<xsl:choose>
|
3580
4211
|
<xsl:when test=". = 1 or . = 0">
|
3581
4212
|
<fo:table-column column-width="proportional-column-width(2)"/>
|
3582
4213
|
</xsl:when>
|
3583
4214
|
<xsl:otherwise>
|
3584
|
-
<fo:table-column column-width="proportional-column-width({.})"/>
|
4215
|
+
<!-- <fo:table-column column-width="proportional-column-width({.})"/> -->
|
4216
|
+
<xsl:variable name="divider">
|
4217
|
+
<xsl:value-of select="@divider"/>
|
4218
|
+
<xsl:if test="not(@divider)">1</xsl:if>
|
4219
|
+
</xsl:variable>
|
4220
|
+
<fo:table-column column-width="proportional-column-width({round(. div $divider)})"/>
|
3585
4221
|
</xsl:otherwise>
|
3586
4222
|
</xsl:choose>
|
3587
4223
|
</xsl:for-each>
|
@@ -3643,65 +4279,157 @@
|
|
3643
4279
|
</fo:table-cell>
|
3644
4280
|
</fo:table-row>
|
3645
4281
|
</xsl:template><xsl:template match="*[local-name()='dt']" mode="dl">
|
4282
|
+
<xsl:param name="id"/>
|
4283
|
+
<xsl:variable name="row_number" select="count(preceding-sibling::*[local-name()='dt']) + 1"/>
|
3646
4284
|
<tr>
|
3647
4285
|
<td>
|
4286
|
+
<xsl:attribute name="id">
|
4287
|
+
<xsl:value-of select="concat($id,'_',$row_number,'_1')"/>
|
4288
|
+
</xsl:attribute>
|
3648
4289
|
<xsl:apply-templates/>
|
3649
4290
|
</td>
|
3650
4291
|
<td>
|
4292
|
+
<xsl:attribute name="id">
|
4293
|
+
<xsl:value-of select="concat($id,'_',$row_number,'_2')"/>
|
4294
|
+
</xsl:attribute>
|
4295
|
+
|
4296
|
+
<xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]">
|
4297
|
+
<xsl:with-param name="process">true</xsl:with-param>
|
4298
|
+
</xsl:apply-templates>
|
4299
|
+
|
4300
|
+
</td>
|
4301
|
+
</tr>
|
4302
|
+
|
4303
|
+
</xsl:template><xsl:template match="*[local-name()='dt']">
|
4304
|
+
<xsl:param name="key_iso"/>
|
4305
|
+
<xsl:param name="split_keep-within-line"/>
|
4306
|
+
|
4307
|
+
<fo:table-row xsl:use-attribute-sets="dt-row-style">
|
4308
|
+
<xsl:call-template name="insert_dt_cell">
|
4309
|
+
<xsl:with-param name="key_iso" select="$key_iso"/>
|
4310
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
4311
|
+
</xsl:call-template>
|
4312
|
+
<xsl:for-each select="following-sibling::*[local-name()='dd'][1]">
|
4313
|
+
<xsl:call-template name="insert_dd_cell">
|
4314
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
4315
|
+
</xsl:call-template>
|
4316
|
+
</xsl:for-each>
|
4317
|
+
</fo:table-row>
|
4318
|
+
</xsl:template><xsl:template name="insert_dt_cell">
|
4319
|
+
<xsl:param name="key_iso"/>
|
4320
|
+
<xsl:param name="split_keep-within-line"/>
|
4321
|
+
<fo:table-cell xsl:use-attribute-sets="dt-cell-style">
|
4322
|
+
|
4323
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
4324
|
+
<!-- border is mandatory, to calculate real width -->
|
4325
|
+
<xsl:attribute name="border">0.1pt solid black</xsl:attribute>
|
4326
|
+
<xsl:attribute name="text-align">left</xsl:attribute>
|
4327
|
+
</xsl:if>
|
4328
|
+
|
4329
|
+
|
4330
|
+
<fo:block xsl:use-attribute-sets="dt-block-style">
|
4331
|
+
<xsl:copy-of select="@id"/>
|
4332
|
+
|
4333
|
+
<xsl:if test="normalize-space($key_iso) = 'true'">
|
4334
|
+
<xsl:attribute name="margin-top">0</xsl:attribute>
|
4335
|
+
</xsl:if>
|
4336
|
+
|
4337
|
+
|
4338
|
+
|
4339
|
+
<xsl:apply-templates>
|
4340
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
4341
|
+
</xsl:apply-templates>
|
3651
4342
|
|
3652
|
-
|
3653
|
-
|
3654
|
-
|
3655
|
-
|
3656
|
-
|
3657
|
-
|
4343
|
+
<xsl:if test="$isGenerateTableIF = 'true'"><fo:inline id="{@id}_end">end</fo:inline></xsl:if> <!-- to determine width of text --> <!-- <xsl:value-of select="$hair_space"/> -->
|
4344
|
+
|
4345
|
+
</fo:block>
|
4346
|
+
</fo:table-cell>
|
4347
|
+
</xsl:template><xsl:template name="insert_dd_cell">
|
4348
|
+
<xsl:param name="split_keep-within-line"/>
|
4349
|
+
<fo:table-cell xsl:use-attribute-sets="dd-cell-style">
|
3658
4350
|
|
3659
|
-
|
3660
|
-
|
4351
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
4352
|
+
<!-- border is mandatory, to calculate real width -->
|
4353
|
+
<xsl:attribute name="border">0.1pt solid black</xsl:attribute>
|
4354
|
+
</xsl:if>
|
3661
4355
|
|
3662
|
-
|
3663
|
-
|
4356
|
+
<fo:block>
|
4357
|
+
|
4358
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
4359
|
+
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
|
4360
|
+
</xsl:if>
|
4361
|
+
|
3664
4362
|
|
3665
|
-
<fo:block xsl:use-attribute-sets="dt-style">
|
3666
|
-
<xsl:copy-of select="@id"/>
|
3667
|
-
|
3668
|
-
<xsl:if test="normalize-space($key_iso) = 'true'">
|
3669
|
-
<xsl:attribute name="margin-top">0</xsl:attribute>
|
3670
|
-
</xsl:if>
|
3671
|
-
|
3672
|
-
|
3673
|
-
|
3674
|
-
<xsl:apply-templates/>
|
3675
|
-
</fo:block>
|
3676
|
-
</fo:table-cell>
|
3677
|
-
<fo:table-cell>
|
3678
|
-
<fo:block>
|
3679
|
-
|
3680
4363
|
|
3681
|
-
|
3682
|
-
|
3683
|
-
|
3684
|
-
|
3685
|
-
|
3686
|
-
|
4364
|
+
<xsl:choose>
|
4365
|
+
<xsl:when test="$isGenerateTableIF = 'true'">
|
4366
|
+
<xsl:apply-templates> <!-- following-sibling::*[local-name()='dd'][1] -->
|
4367
|
+
<xsl:with-param name="process">true</xsl:with-param>
|
4368
|
+
</xsl:apply-templates>
|
4369
|
+
</xsl:when>
|
4370
|
+
<xsl:otherwise>
|
4371
|
+
<xsl:apply-templates select="."> <!-- following-sibling::*[local-name()='dd'][1] -->
|
4372
|
+
<xsl:with-param name="process">true</xsl:with-param>
|
4373
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
4374
|
+
</xsl:apply-templates>
|
4375
|
+
</xsl:otherwise>
|
4376
|
+
|
4377
|
+
</xsl:choose>
|
4378
|
+
|
4379
|
+
<xsl:if test="$isGenerateTableIF = 'true'"><fo:inline id="{@id}_end">end</fo:inline></xsl:if> <!-- to determine width of text --> <!-- <xsl:value-of select="$hair_space"/> -->
|
4380
|
+
|
4381
|
+
</fo:block>
|
4382
|
+
</fo:table-cell>
|
3687
4383
|
</xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
|
3688
4384
|
<xsl:apply-templates/>
|
3689
4385
|
</xsl:template><xsl:template match="*[local-name()='dd']">
|
3690
4386
|
<xsl:param name="process">false</xsl:param>
|
4387
|
+
<xsl:param name="split_keep-within-line"/>
|
3691
4388
|
<xsl:if test="$process = 'true'">
|
3692
4389
|
<xsl:apply-templates select="@language"/>
|
3693
|
-
<xsl:apply-templates
|
4390
|
+
<xsl:apply-templates>
|
4391
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
4392
|
+
</xsl:apply-templates>
|
3694
4393
|
</xsl:if>
|
3695
4394
|
</xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
|
3696
4395
|
<fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
|
3697
|
-
</xsl:template><xsl:template match="*[local-name()='
|
4396
|
+
</xsl:template><xsl:template match="*[local-name()='dt']" mode="dl_if">
|
4397
|
+
<xsl:param name="id"/>
|
4398
|
+
<xsl:variable name="row_number" select="count(preceding-sibling::*[local-name()='dt']) + 1"/>
|
4399
|
+
<tr>
|
4400
|
+
<td>
|
4401
|
+
<xsl:copy-of select="node()"/>
|
4402
|
+
</td>
|
4403
|
+
<td>
|
4404
|
+
|
4405
|
+
<xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]"/>
|
4406
|
+
|
4407
|
+
<!-- get paragraphs from nested 'dl' -->
|
4408
|
+
<xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]/*[local-name() = 'dl']" mode="dl_if_nested"/>
|
4409
|
+
|
4410
|
+
|
4411
|
+
</td>
|
4412
|
+
</tr>
|
4413
|
+
|
4414
|
+
</xsl:template><xsl:template match="*[local-name()='dd']" mode="dl_if"/><xsl:template match="*[local-name()='dl']" mode="dl_if_nested">
|
4415
|
+
<xsl:for-each select="*[local-name() = 'dt']">
|
4416
|
+
<p>
|
4417
|
+
<xsl:copy-of select="node()"/>
|
4418
|
+
<xsl:text> </xsl:text>
|
4419
|
+
<xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/*[local-name() = 'p']/node()"/>
|
4420
|
+
</p>
|
4421
|
+
</xsl:for-each>
|
4422
|
+
</xsl:template><xsl:template match="*[local-name()='dd']" mode="dl_if_nested"/><xsl:template match="*[local-name()='em']">
|
3698
4423
|
<fo:inline font-style="italic">
|
3699
4424
|
<xsl:apply-templates/>
|
3700
4425
|
</fo:inline>
|
3701
4426
|
</xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
|
4427
|
+
<xsl:param name="split_keep-within-line"/>
|
3702
4428
|
<fo:inline font-weight="bold">
|
3703
4429
|
|
3704
|
-
<xsl:apply-templates
|
4430
|
+
<xsl:apply-templates>
|
4431
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
4432
|
+
</xsl:apply-templates>
|
3705
4433
|
</fo:inline>
|
3706
4434
|
</xsl:template><xsl:template match="*[local-name()='padding']">
|
3707
4435
|
<fo:inline padding-right="{@value}"> </fo:inline>
|
@@ -3722,7 +4450,7 @@
|
|
3722
4450
|
|
3723
4451
|
|
3724
4452
|
|
3725
|
-
|
4453
|
+
<!-- 10 -->
|
3726
4454
|
|
3727
4455
|
|
3728
4456
|
|
@@ -3902,6 +4630,10 @@
|
|
3902
4630
|
<xsl:param name="text"/>
|
3903
4631
|
<xsl:param name="separator" select="' '"/>
|
3904
4632
|
<xsl:choose>
|
4633
|
+
|
4634
|
+
<xsl:when test="$isGenerateTableIF = 'true' and not(contains($text, $separator))">
|
4635
|
+
<word><xsl:value-of select="normalize-space($text)"/></word>
|
4636
|
+
</xsl:when>
|
3905
4637
|
<xsl:when test="not(contains($text, $separator))">
|
3906
4638
|
<word>
|
3907
4639
|
<xsl:variable name="len_str_tmp" select="string-length(normalize-space($text))"/>
|
@@ -3946,13 +4678,66 @@
|
|
3946
4678
|
</xsl:when>
|
3947
4679
|
<xsl:otherwise>
|
3948
4680
|
<word>
|
3949
|
-
<xsl:
|
4681
|
+
<xsl:variable name="word" select="normalize-space(substring-before($text, $separator))"/>
|
4682
|
+
<xsl:choose>
|
4683
|
+
<xsl:when test="$isGenerateTableIF = 'true'">
|
4684
|
+
<xsl:value-of select="$word"/>
|
4685
|
+
</xsl:when>
|
4686
|
+
<xsl:otherwise>
|
4687
|
+
<xsl:value-of select="string-length($word)"/>
|
4688
|
+
</xsl:otherwise>
|
4689
|
+
</xsl:choose>
|
3950
4690
|
</word>
|
3951
4691
|
<xsl:call-template name="tokenize">
|
3952
4692
|
<xsl:with-param name="text" select="substring-after($text, $separator)"/>
|
3953
4693
|
</xsl:call-template>
|
3954
4694
|
</xsl:otherwise>
|
3955
4695
|
</xsl:choose>
|
4696
|
+
</xsl:template><xsl:template name="tokenize_with_tags">
|
4697
|
+
<xsl:param name="tags"/>
|
4698
|
+
<xsl:param name="text"/>
|
4699
|
+
<xsl:param name="separator" select="' '"/>
|
4700
|
+
<xsl:choose>
|
4701
|
+
|
4702
|
+
<xsl:when test="not(contains($text, $separator))">
|
4703
|
+
<word>
|
4704
|
+
<xsl:call-template name="enclose_text_in_tags">
|
4705
|
+
<xsl:with-param name="text" select="normalize-space($text)"/>
|
4706
|
+
<xsl:with-param name="tags" select="$tags"/>
|
4707
|
+
</xsl:call-template>
|
4708
|
+
</word>
|
4709
|
+
</xsl:when>
|
4710
|
+
<xsl:otherwise>
|
4711
|
+
<word>
|
4712
|
+
<xsl:call-template name="enclose_text_in_tags">
|
4713
|
+
<xsl:with-param name="text" select="normalize-space(substring-before($text, $separator))"/>
|
4714
|
+
<xsl:with-param name="tags" select="$tags"/>
|
4715
|
+
</xsl:call-template>
|
4716
|
+
</word>
|
4717
|
+
<xsl:call-template name="tokenize_with_tags">
|
4718
|
+
<xsl:with-param name="text" select="substring-after($text, $separator)"/>
|
4719
|
+
</xsl:call-template>
|
4720
|
+
</xsl:otherwise>
|
4721
|
+
</xsl:choose>
|
4722
|
+
</xsl:template><xsl:template name="enclose_text_in_tags">
|
4723
|
+
<xsl:param name="text"/>
|
4724
|
+
<xsl:param name="tags"/>
|
4725
|
+
<xsl:param name="num">1</xsl:param> <!-- default (start) value -->
|
4726
|
+
|
4727
|
+
<xsl:variable name="tag_name" select="normalize-space(xalan:nodeset($tags)//tag[$num])"/>
|
4728
|
+
|
4729
|
+
<xsl:choose>
|
4730
|
+
<xsl:when test="$tag_name = ''"><xsl:value-of select="$text"/></xsl:when>
|
4731
|
+
<xsl:otherwise>
|
4732
|
+
<xsl:element name="{$tag_name}">
|
4733
|
+
<xsl:call-template name="enclose_text_in_tags">
|
4734
|
+
<xsl:with-param name="text" select="$text"/>
|
4735
|
+
<xsl:with-param name="tags" select="$tags"/>
|
4736
|
+
<xsl:with-param name="num" select="$num + 1"/>
|
4737
|
+
</xsl:call-template>
|
4738
|
+
</xsl:element>
|
4739
|
+
</xsl:otherwise>
|
4740
|
+
</xsl:choose>
|
3956
4741
|
</xsl:template><xsl:template name="max_length">
|
3957
4742
|
<xsl:param name="words"/>
|
3958
4743
|
<xsl:for-each select="$words//word">
|
@@ -4053,12 +4838,19 @@
|
|
4053
4838
|
</xsl:otherwise>
|
4054
4839
|
</xsl:choose>
|
4055
4840
|
</xsl:template><xsl:template name="getSimpleTable">
|
4841
|
+
<xsl:param name="id"/>
|
4842
|
+
|
4056
4843
|
<xsl:variable name="simple-table">
|
4057
4844
|
|
4845
|
+
<!-- Step 0. replace <br/> to <p>...</p> -->
|
4846
|
+
<xsl:variable name="table_without_br">
|
4847
|
+
<xsl:apply-templates mode="table-without-br"/>
|
4848
|
+
</xsl:variable>
|
4849
|
+
|
4058
4850
|
<!-- Step 1. colspan processing -->
|
4059
4851
|
<xsl:variable name="simple-table-colspan">
|
4060
4852
|
<tbody>
|
4061
|
-
<xsl:apply-templates mode="simple-table-colspan"/>
|
4853
|
+
<xsl:apply-templates select="xalan:nodeset($table_without_br)" mode="simple-table-colspan"/>
|
4062
4854
|
</tbody>
|
4063
4855
|
</xsl:variable>
|
4064
4856
|
|
@@ -4067,10 +4859,67 @@
|
|
4067
4859
|
<xsl:apply-templates select="xalan:nodeset($simple-table-colspan)" mode="simple-table-rowspan"/>
|
4068
4860
|
</xsl:variable>
|
4069
4861
|
|
4070
|
-
|
4071
|
-
|
4862
|
+
<!-- Step 3: add id to each cell -->
|
4863
|
+
<!-- add <word>...</word> for each word, image, math -->
|
4864
|
+
<xsl:variable name="simple-table-id">
|
4865
|
+
<xsl:apply-templates select="xalan:nodeset($simple-table-rowspan)" mode="simple-table-id">
|
4866
|
+
<xsl:with-param name="id" select="$id"/>
|
4867
|
+
</xsl:apply-templates>
|
4868
|
+
</xsl:variable>
|
4869
|
+
|
4870
|
+
<xsl:copy-of select="xalan:nodeset($simple-table-id)"/>
|
4871
|
+
|
4072
4872
|
</xsl:variable>
|
4073
4873
|
<xsl:copy-of select="$simple-table"/>
|
4874
|
+
</xsl:template><xsl:template match="@*|node()" mode="table-without-br">
|
4875
|
+
<xsl:copy>
|
4876
|
+
<xsl:apply-templates select="@*|node()" mode="table-without-br"/>
|
4877
|
+
</xsl:copy>
|
4878
|
+
</xsl:template><xsl:template match="*[local-name()='th' or local-name() = 'td'][not(*[local-name()='br']) and not(*[local-name()='p'])]" mode="table-without-br">
|
4879
|
+
<xsl:copy>
|
4880
|
+
<xsl:copy-of select="@*"/>
|
4881
|
+
<p>
|
4882
|
+
<xsl:copy-of select="node()"/>
|
4883
|
+
</p>
|
4884
|
+
</xsl:copy>
|
4885
|
+
</xsl:template><xsl:template match="*[local-name()='th' or local-name()='td'][*[local-name()='br']]" mode="table-without-br">
|
4886
|
+
<xsl:copy>
|
4887
|
+
<xsl:copy-of select="@*"/>
|
4888
|
+
<xsl:for-each select="*[local-name()='br']">
|
4889
|
+
<xsl:variable name="current_id" select="generate-id()"/>
|
4890
|
+
<p>
|
4891
|
+
<xsl:for-each select="preceding-sibling::node()[following-sibling::*[local-name() = 'br'][1][generate-id() = $current_id]][not(local-name() = 'br')]">
|
4892
|
+
<xsl:copy-of select="."/>
|
4893
|
+
</xsl:for-each>
|
4894
|
+
</p>
|
4895
|
+
<xsl:if test="not(following-sibling::*[local-name() = 'br'])">
|
4896
|
+
<p>
|
4897
|
+
<xsl:for-each select="following-sibling::node()">
|
4898
|
+
<xsl:copy-of select="."/>
|
4899
|
+
</xsl:for-each>
|
4900
|
+
</p>
|
4901
|
+
</xsl:if>
|
4902
|
+
</xsl:for-each>
|
4903
|
+
</xsl:copy>
|
4904
|
+
</xsl:template><xsl:template match="*[local-name()='th' or local-name()='td']/*[local-name() = 'p'][*[local-name()='br']]" mode="table-without-br">
|
4905
|
+
<xsl:for-each select="*[local-name()='br']">
|
4906
|
+
<xsl:variable name="current_id" select="generate-id()"/>
|
4907
|
+
<p>
|
4908
|
+
<xsl:for-each select="preceding-sibling::node()[following-sibling::*[local-name() = 'br'][1][generate-id() = $current_id]][not(local-name() = 'br')]">
|
4909
|
+
<xsl:copy-of select="."/>
|
4910
|
+
</xsl:for-each>
|
4911
|
+
</p>
|
4912
|
+
<xsl:if test="not(following-sibling::*[local-name() = 'br'])">
|
4913
|
+
<p>
|
4914
|
+
<xsl:for-each select="following-sibling::node()">
|
4915
|
+
<xsl:copy-of select="."/>
|
4916
|
+
</xsl:for-each>
|
4917
|
+
</p>
|
4918
|
+
</xsl:if>
|
4919
|
+
</xsl:for-each>
|
4920
|
+
</xsl:template><xsl:template match="text()[not(ancestor::*[local-name() = 'sourcecode'])]" mode="table-without-br">
|
4921
|
+
<xsl:variable name="text" select="translate(.,'	 ','')"/>
|
4922
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),' {2,}',' ')"/>
|
4074
4923
|
</xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
|
4075
4924
|
<xsl:apply-templates mode="simple-table-colspan"/>
|
4076
4925
|
</xsl:template><xsl:template match="*[local-name()='fn']" mode="simple-table-colspan"/><xsl:template match="*[local-name()='th'] | *[local-name()='td']" mode="simple-table-colspan">
|
@@ -4160,6 +5009,126 @@
|
|
4160
5009
|
<xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
|
4161
5010
|
<xsl:with-param name="previousRow" select="$newRow"/>
|
4162
5011
|
</xsl:apply-templates>
|
5012
|
+
</xsl:template><xsl:template match="/" mode="simple-table-id">
|
5013
|
+
<xsl:param name="id"/>
|
5014
|
+
<xsl:variable name="id_prefixed" select="concat('table_if_',$id)"/> <!-- table id prefixed by 'table_if_' to simple search in IF -->
|
5015
|
+
<xsl:apply-templates select="@*|node()" mode="simple-table-id">
|
5016
|
+
<xsl:with-param name="id" select="$id_prefixed"/>
|
5017
|
+
</xsl:apply-templates>
|
5018
|
+
</xsl:template><xsl:template match="@*|node()" mode="simple-table-id">
|
5019
|
+
<xsl:param name="id"/>
|
5020
|
+
<xsl:copy>
|
5021
|
+
<xsl:apply-templates select="@*|node()" mode="simple-table-id">
|
5022
|
+
<xsl:with-param name="id" select="$id"/>
|
5023
|
+
</xsl:apply-templates>
|
5024
|
+
</xsl:copy>
|
5025
|
+
</xsl:template><xsl:template match="*[local-name()='tbody']" mode="simple-table-id">
|
5026
|
+
<xsl:param name="id"/>
|
5027
|
+
<xsl:copy>
|
5028
|
+
<xsl:copy-of select="@*"/>
|
5029
|
+
<xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
|
5030
|
+
<xsl:apply-templates select="node()" mode="simple-table-id">
|
5031
|
+
<xsl:with-param name="id" select="$id"/>
|
5032
|
+
</xsl:apply-templates>
|
5033
|
+
</xsl:copy>
|
5034
|
+
</xsl:template><xsl:template match="*[local-name()='th' or local-name()='td']" mode="simple-table-id">
|
5035
|
+
<xsl:param name="id"/>
|
5036
|
+
<xsl:copy>
|
5037
|
+
<xsl:copy-of select="@*"/>
|
5038
|
+
<xsl:variable name="row_number" select="count(../preceding-sibling::*) + 1"/>
|
5039
|
+
<xsl:variable name="col_number" select="count(preceding-sibling::*) + 1"/>
|
5040
|
+
<xsl:attribute name="id">
|
5041
|
+
<xsl:value-of select="concat($id,'_',$row_number,'_',$col_number)"/>
|
5042
|
+
</xsl:attribute>
|
5043
|
+
|
5044
|
+
<xsl:for-each select="*[local-name() = 'p']">
|
5045
|
+
<xsl:copy>
|
5046
|
+
<xsl:copy-of select="@*"/>
|
5047
|
+
<xsl:variable name="p_num" select="count(preceding-sibling::*[local-name() = 'p']) + 1"/>
|
5048
|
+
<xsl:attribute name="id">
|
5049
|
+
<xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_p_',$p_num)"/>
|
5050
|
+
</xsl:attribute>
|
5051
|
+
|
5052
|
+
<xsl:copy-of select="node()"/>
|
5053
|
+
</xsl:copy>
|
5054
|
+
</xsl:for-each>
|
5055
|
+
|
5056
|
+
|
5057
|
+
<xsl:if test="$isGenerateTableIF = 'true'"> <!-- split each paragraph to words, image, math -->
|
5058
|
+
|
5059
|
+
<xsl:variable name="td_text">
|
5060
|
+
<xsl:apply-templates select="." mode="td_text_with_formatting"/>
|
5061
|
+
</xsl:variable>
|
5062
|
+
|
5063
|
+
<!-- td_text='<xsl:copy-of select="$td_text"/>' -->
|
5064
|
+
|
5065
|
+
<xsl:variable name="words">
|
5066
|
+
<xsl:for-each select=".//*[local-name() = 'image' or local-name() = 'stem']">
|
5067
|
+
<word>
|
5068
|
+
<xsl:copy-of select="."/>
|
5069
|
+
</word>
|
5070
|
+
</xsl:for-each>
|
5071
|
+
|
5072
|
+
<xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != '']">
|
5073
|
+
<xsl:copy-of select="."/>
|
5074
|
+
</xsl:for-each>
|
5075
|
+
|
5076
|
+
</xsl:variable>
|
5077
|
+
|
5078
|
+
<xsl:for-each select="xalan:nodeset($words)/word">
|
5079
|
+
<xsl:variable name="num" select="count(preceding-sibling::word) + 1"/>
|
5080
|
+
<xsl:copy>
|
5081
|
+
<xsl:attribute name="id">
|
5082
|
+
<xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_word_',$num)"/>
|
5083
|
+
</xsl:attribute>
|
5084
|
+
<xsl:copy-of select="node()"/>
|
5085
|
+
</xsl:copy>
|
5086
|
+
</xsl:for-each>
|
5087
|
+
</xsl:if>
|
5088
|
+
</xsl:copy>
|
5089
|
+
|
5090
|
+
</xsl:template><xsl:template match="@*|node()" mode="td_text_with_formatting">
|
5091
|
+
<xsl:copy>
|
5092
|
+
<xsl:apply-templates select="@*|node()" mode="td_text_with_formatting"/>
|
5093
|
+
</xsl:copy>
|
5094
|
+
</xsl:template><xsl:template match="*[local-name() = 'stem' or local-name() = 'image']" mode="td_text_with_formatting"/><xsl:template match="*[local-name() = 'keep-together_within-line']/text()" mode="td_text_with_formatting">
|
5095
|
+
<xsl:variable name="formatting_tags">
|
5096
|
+
<xsl:call-template name="getFormattingTags"/>
|
5097
|
+
</xsl:variable>
|
5098
|
+
<word>
|
5099
|
+
<xsl:call-template name="enclose_text_in_tags">
|
5100
|
+
<xsl:with-param name="text" select="normalize-space(.)"/>
|
5101
|
+
<xsl:with-param name="tags" select="$formatting_tags"/>
|
5102
|
+
</xsl:call-template>
|
5103
|
+
</word>
|
5104
|
+
</xsl:template><xsl:template match="*[local-name() != 'keep-together_within-line']/text()" mode="td_text_with_formatting">
|
5105
|
+
|
5106
|
+
<xsl:variable name="td_text" select="."/>
|
5107
|
+
|
5108
|
+
<xsl:variable name="string_with_added_zerospaces">
|
5109
|
+
<xsl:call-template name="add-zero-spaces-java">
|
5110
|
+
<xsl:with-param name="text" select="$td_text"/>
|
5111
|
+
</xsl:call-template>
|
5112
|
+
</xsl:variable>
|
5113
|
+
|
5114
|
+
<xsl:variable name="formatting_tags">
|
5115
|
+
<xsl:call-template name="getFormattingTags"/>
|
5116
|
+
</xsl:variable>
|
5117
|
+
|
5118
|
+
<!-- <word>text</word> -->
|
5119
|
+
<xsl:call-template name="tokenize_with_tags">
|
5120
|
+
<xsl:with-param name="tags" select="$formatting_tags"/>
|
5121
|
+
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
|
5122
|
+
</xsl:call-template>
|
5123
|
+
</xsl:template><xsl:template name="getFormattingTags">
|
5124
|
+
<tags>
|
5125
|
+
<xsl:if test="ancestor::*[local-name() = 'strong']"><tag>strong</tag></xsl:if>
|
5126
|
+
<xsl:if test="ancestor::*[local-name() = 'em']"><tag>em</tag></xsl:if>
|
5127
|
+
<xsl:if test="ancestor::*[local-name() = 'sub']"><tag>sub</tag></xsl:if>
|
5128
|
+
<xsl:if test="ancestor::*[local-name() = 'sup']"><tag>sup</tag></xsl:if>
|
5129
|
+
<xsl:if test="ancestor::*[local-name() = 'tt']"><tag>tt</tag></xsl:if>
|
5130
|
+
<xsl:if test="ancestor::*[local-name() = 'keep-together_within-line']"><tag>keep-together_within-line</tag></xsl:if>
|
5131
|
+
</tags>
|
4163
5132
|
</xsl:template><xsl:template name="getLang">
|
4164
5133
|
<xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
|
4165
5134
|
<xsl:variable name="language">
|
@@ -4353,6 +5322,11 @@
|
|
4353
5322
|
</xsl:variable>
|
4354
5323
|
<fo:inline xsl:use-attribute-sets="link-style">
|
4355
5324
|
|
5325
|
+
<xsl:if test="starts-with(normalize-space(@target), 'mailto:')">
|
5326
|
+
<xsl:attribute name="keep-together.within-line">always</xsl:attribute>
|
5327
|
+
</xsl:if>
|
5328
|
+
|
5329
|
+
|
4356
5330
|
|
4357
5331
|
|
4358
5332
|
|
@@ -4635,7 +5609,19 @@
|
|
4635
5609
|
<xsl:value-of select="$suffix"/>
|
4636
5610
|
</xsl:if>
|
4637
5611
|
</xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'p']">
|
4638
|
-
<
|
5612
|
+
<xsl:variable name="num"><xsl:number/></xsl:variable>
|
5613
|
+
<xsl:choose>
|
5614
|
+
<xsl:when test="$num = 1"> <!-- first paragraph renders in the same line as titlenote name -->
|
5615
|
+
<fo:inline xsl:use-attribute-sets="termnote-p-style">
|
5616
|
+
<xsl:apply-templates/>
|
5617
|
+
</fo:inline>
|
5618
|
+
</xsl:when>
|
5619
|
+
<xsl:otherwise>
|
5620
|
+
<fo:block xsl:use-attribute-sets="termnote-p-style">
|
5621
|
+
<xsl:apply-templates/>
|
5622
|
+
</fo:block>
|
5623
|
+
</xsl:otherwise>
|
5624
|
+
</xsl:choose>
|
4639
5625
|
</xsl:template><xsl:template match="*[local-name() = 'terms']">
|
4640
5626
|
<!-- <xsl:message>'terms' <xsl:number/> processing...</xsl:message> -->
|
4641
5627
|
<fo:block id="{@id}">
|
@@ -5457,7 +6443,7 @@
|
|
5457
6443
|
</xsl:choose>
|
5458
6444
|
</xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="bookmarks"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'xref']" mode="contents">
|
5459
6445
|
<xsl:value-of select="."/>
|
5460
|
-
</xsl:template><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
|
6446
|
+
</xsl:template><xsl:template match="*[local-name() = 'review']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
|
5461
6447
|
<xsl:text> </xsl:text>
|
5462
6448
|
</xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
|
5463
6449
|
<xsl:copy>
|
@@ -5528,7 +6514,7 @@
|
|
5528
6514
|
|
5529
6515
|
|
5530
6516
|
|
5531
|
-
|
6517
|
+
<!-- 9 -->
|
5532
6518
|
|
5533
6519
|
|
5534
6520
|
|
@@ -5612,7 +6598,7 @@
|
|
5612
6598
|
<xsl:for-each select="xalan:nodeset($text_step4)/node()">
|
5613
6599
|
<xsl:choose>
|
5614
6600
|
<xsl:when test="local-name() = 'interspers'"> <!-- word with length more than 30 will be interspersed with zero-width space -->
|
5615
|
-
<xsl:call-template name="interspers">
|
6601
|
+
<xsl:call-template name="interspers-java">
|
5616
6602
|
<xsl:with-param name="str" select="."/>
|
5617
6603
|
</xsl:call-template>
|
5618
6604
|
</xsl:when>
|
@@ -5662,6 +6648,10 @@
|
|
5662
6648
|
<xsl:with-param name="char" select="$char"/>
|
5663
6649
|
</xsl:call-template>
|
5664
6650
|
</xsl:if>
|
6651
|
+
</xsl:template><xsl:template name="interspers-java">
|
6652
|
+
<xsl:param name="str"/>
|
6653
|
+
<xsl:param name="char" select="$zero_width_space"/>
|
6654
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($str),'([^ -.:=_—])',concat('$1', $char))"/> <!-- insert $char after each char excep space, - . : = _ etc. -->
|
5665
6655
|
</xsl:template><xsl:template match="*" mode="syntax_highlight">
|
5666
6656
|
<xsl:apply-templates mode="syntax_highlight"/>
|
5667
6657
|
</xsl:template><xsl:variable name="syntax_highlight_styles_">
|
@@ -5874,7 +6864,9 @@
|
|
5874
6864
|
<!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
|
5875
6865
|
</xsl:if>
|
5876
6866
|
<xsl:variable name="simple-table">
|
5877
|
-
<xsl:call-template name="getSimpleTable"
|
6867
|
+
<xsl:call-template name="getSimpleTable">
|
6868
|
+
<xsl:with-param name="id" select="@id"/>
|
6869
|
+
</xsl:call-template>
|
5878
6870
|
</xsl:variable>
|
5879
6871
|
<xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
|
5880
6872
|
<xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
|
@@ -6303,6 +7295,7 @@
|
|
6303
7295
|
|
6304
7296
|
|
6305
7297
|
|
7298
|
+
|
6306
7299
|
<xsl:choose>
|
6307
7300
|
<xsl:when test="ancestor::un:annex and $depth >= 2">9.5</xsl:when>
|
6308
7301
|
<xsl:when test="ancestor::un:sections">9.5</xsl:when>
|
@@ -6619,6 +7612,11 @@
|
|
6619
7612
|
</xsl:otherwise>
|
6620
7613
|
</xsl:choose>
|
6621
7614
|
</xsl:template><xsl:template match="*[local-name()='ul'] | *[local-name()='ol']" mode="list" name="list">
|
7615
|
+
|
7616
|
+
<xsl:apply-templates select="*[local-name() = 'name']">
|
7617
|
+
<xsl:with-param name="process">true</xsl:with-param>
|
7618
|
+
</xsl:apply-templates>
|
7619
|
+
|
6622
7620
|
<fo:list-block xsl:use-attribute-sets="list-style">
|
6623
7621
|
|
6624
7622
|
|
@@ -6629,12 +7627,23 @@
|
|
6629
7627
|
|
6630
7628
|
|
6631
7629
|
|
7630
|
+
<xsl:if test="*[local-name() = 'name']">
|
7631
|
+
<xsl:attribute name="margin-top">0pt</xsl:attribute>
|
7632
|
+
</xsl:if>
|
7633
|
+
|
6632
7634
|
<xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
|
6633
7635
|
</fo:list-block>
|
6634
7636
|
<!-- <xsl:for-each select="./iho:note">
|
6635
7637
|
<xsl:call-template name="note"/>
|
6636
7638
|
</xsl:for-each> -->
|
6637
7639
|
<xsl:apply-templates select="./*[local-name() = 'note']"/>
|
7640
|
+
</xsl:template><xsl:template match="*[local-name() = 'ol' or local-name() = 'ul']/*[local-name() = 'name']">
|
7641
|
+
<xsl:param name="process">false</xsl:param>
|
7642
|
+
<xsl:if test="$process = 'true'">
|
7643
|
+
<fo:block xsl:use-attribute-sets="list-name-style">
|
7644
|
+
<xsl:apply-templates/>
|
7645
|
+
</fo:block>
|
7646
|
+
</xsl:if>
|
6638
7647
|
</xsl:template><xsl:template match="*[local-name()='li']">
|
6639
7648
|
<fo:list-item xsl:use-attribute-sets="list-item-style">
|
6640
7649
|
<xsl:copy-of select="@id"/>
|
@@ -6834,7 +7843,7 @@
|
|
6834
7843
|
<!-- <fo:inline id="{@id}" font-size="1pt"/> -->
|
6835
7844
|
<fo:inline id="{@id}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:inline>
|
6836
7845
|
<!-- we need to add zero-width space, otherwise this fo:inline is missing in IF xml -->
|
6837
|
-
<xsl:if test="not(following-sibling::node()[normalize-space() != ''])"> </xsl:if>
|
7846
|
+
<xsl:if test="not(following-sibling::node()[normalize-space() != ''])"><fo:inline font-size="1pt"> </fo:inline></xsl:if>
|
6838
7847
|
</xsl:template><xsl:template match="*[local-name() = 'errata']">
|
6839
7848
|
<!-- <row>
|
6840
7849
|
<date>05-07-2013</date>
|
@@ -6912,22 +7921,11 @@
|
|
6912
7921
|
</xsl:template><xsl:template name="processBibitem">
|
6913
7922
|
|
6914
7923
|
|
7924
|
+
<!-- start UNECE bibitem processing -->
|
6915
7925
|
<fo:inline padding-right="5mm">[<xsl:value-of select="un:docidentifier"/>]</fo:inline><xsl:value-of select="un:docidentifier"/>
|
6916
|
-
<xsl:
|
6917
|
-
<fo:inline font-style="italic">
|
6918
|
-
<xsl:text>, </xsl:text>
|
6919
|
-
<xsl:choose>
|
6920
|
-
<xsl:when test="un:title[@type = 'main' and @language = 'en']">
|
6921
|
-
<xsl:apply-templates select="un:title[@type = 'main' and @language = 'en']"/>
|
6922
|
-
</xsl:when>
|
6923
|
-
<xsl:otherwise>
|
6924
|
-
<xsl:apply-templates select="un:title"/>
|
6925
|
-
</xsl:otherwise>
|
6926
|
-
</xsl:choose>
|
6927
|
-
</fo:inline>
|
6928
|
-
</xsl:if>
|
7926
|
+
<xsl:text> </xsl:text>
|
6929
7927
|
<xsl:apply-templates select="un:formattedref"/>
|
6930
|
-
|
7928
|
+
<!-- END UNECE bibitem processing -->
|
6931
7929
|
|
6932
7930
|
</xsl:template><xsl:template name="processBibitemDocId">
|
6933
7931
|
<xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'metanorma-ordinal' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
|
@@ -7233,6 +8231,8 @@
|
|
7233
8231
|
<fo:block-container id="{@id}" xsl:use-attribute-sets="admonition-style">
|
7234
8232
|
|
7235
8233
|
|
8234
|
+
|
8235
|
+
|
7236
8236
|
<fo:block xsl:use-attribute-sets="admonition-name-style">
|
7237
8237
|
<xsl:call-template name="displayAdmonitionName"/>
|
7238
8238
|
</fo:block>
|
@@ -7243,6 +8243,8 @@
|
|
7243
8243
|
<fo:block-container xsl:use-attribute-sets="admonition-container-style">
|
7244
8244
|
|
7245
8245
|
|
8246
|
+
|
8247
|
+
|
7246
8248
|
<fo:block-container margin-left="0mm" margin-right="0mm">
|
7247
8249
|
<fo:block>
|
7248
8250
|
<xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
|
@@ -7254,25 +8256,32 @@
|
|
7254
8256
|
</fo:block-container>
|
7255
8257
|
|
7256
8258
|
</xsl:template><xsl:template name="displayAdmonitionName">
|
7257
|
-
|
8259
|
+
<xsl:param name="sep"/> <!-- Example: ' - ' -->
|
8260
|
+
<!-- <xsl:choose>
|
8261
|
+
<xsl:when test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
|
8262
|
+
<xsl:choose>
|
8263
|
+
<xsl:when test="@type='important'"><xsl:apply-templates select="@type"/></xsl:when>
|
8264
|
+
<xsl:otherwise>
|
8265
|
+
<xsl:apply-templates select="*[local-name() = 'name']"/>
|
8266
|
+
</xsl:otherwise>
|
8267
|
+
</xsl:choose>
|
8268
|
+
</xsl:when>
|
8269
|
+
<xsl:otherwise>
|
7258
8270
|
<xsl:apply-templates select="*[local-name() = 'name']"/>
|
7259
8271
|
<xsl:if test="not(*[local-name() = 'name'])">
|
7260
8272
|
<xsl:apply-templates select="@type"/>
|
7261
8273
|
</xsl:if>
|
7262
|
-
|
7263
|
-
|
7264
|
-
<xsl:
|
7265
|
-
|
7266
|
-
<xsl:variable name="admonition_type_">
|
7267
|
-
<xsl:call-template name="getLocalizedString">
|
7268
|
-
<xsl:with-param name="key">admonition.<xsl:value-of select="."/></xsl:with-param>
|
7269
|
-
</xsl:call-template>
|
8274
|
+
</xsl:otherwise>
|
8275
|
+
</xsl:choose> -->
|
8276
|
+
<xsl:variable name="name">
|
8277
|
+
<xsl:apply-templates select="*[local-name() = 'name']"/>
|
7270
8278
|
</xsl:variable>
|
7271
|
-
<xsl:
|
7272
|
-
<xsl:
|
7273
|
-
|
7274
|
-
<xsl:value-of select="java:toUpperCase(java:java.lang.String.new(.))"/>
|
8279
|
+
<xsl:copy-of select="$name"/>
|
8280
|
+
<xsl:if test="normalize-space($name) != ''">
|
8281
|
+
<xsl:value-of select="$sep"/>
|
7275
8282
|
</xsl:if>
|
8283
|
+
</xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'name']">
|
8284
|
+
<xsl:apply-templates/>
|
7276
8285
|
</xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'p']">
|
7277
8286
|
|
7278
8287
|
<fo:block xsl:use-attribute-sets="admonition-p-style">
|
@@ -7443,6 +8452,8 @@
|
|
7443
8452
|
</xsl:when>
|
7444
8453
|
<xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise>
|
7445
8454
|
</xsl:choose>
|
8455
|
+
</xsl:template><xsl:template match="*[local-name() = 'lang_none']">
|
8456
|
+
<fo:inline xml:lang="none"><xsl:value-of select="."/></fo:inline>
|
7446
8457
|
</xsl:template><xsl:template name="printEdition">
|
7447
8458
|
<xsl:variable name="edition_i18n" select="normalize-space((//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']/*[local-name() = 'edition'][normalize-space(@language) != ''])"/>
|
7448
8459
|
<xsl:text> </xsl:text>
|
@@ -7549,6 +8560,27 @@
|
|
7549
8560
|
</xsl:when>
|
7550
8561
|
<xsl:otherwise><xsl:value-of select="$monthStr_"/></xsl:otherwise>
|
7551
8562
|
</xsl:choose>
|
8563
|
+
</xsl:template><xsl:template name="getMonthLocalizedByNum">
|
8564
|
+
<xsl:param name="num"/>
|
8565
|
+
<xsl:variable name="monthStr">
|
8566
|
+
<xsl:choose>
|
8567
|
+
<xsl:when test="$num = '01'">january</xsl:when>
|
8568
|
+
<xsl:when test="$num = '02'">february</xsl:when>
|
8569
|
+
<xsl:when test="$num = '03'">march</xsl:when>
|
8570
|
+
<xsl:when test="$num = '04'">april</xsl:when>
|
8571
|
+
<xsl:when test="$num = '05'">may</xsl:when>
|
8572
|
+
<xsl:when test="$num = '06'">june</xsl:when>
|
8573
|
+
<xsl:when test="$num = '07'">july</xsl:when>
|
8574
|
+
<xsl:when test="$num = '08'">august</xsl:when>
|
8575
|
+
<xsl:when test="$num = '09'">september</xsl:when>
|
8576
|
+
<xsl:when test="$num = '10'">october</xsl:when>
|
8577
|
+
<xsl:when test="$num = '11'">november</xsl:when>
|
8578
|
+
<xsl:when test="$num = '12'">december</xsl:when>
|
8579
|
+
</xsl:choose>
|
8580
|
+
</xsl:variable>
|
8581
|
+
<xsl:call-template name="getLocalizedString">
|
8582
|
+
<xsl:with-param name="key">month_<xsl:value-of select="$monthStr"/></xsl:with-param>
|
8583
|
+
</xsl:call-template>
|
7552
8584
|
</xsl:template><xsl:template name="insertKeywords">
|
7553
8585
|
<xsl:param name="sorting" select="'true'"/>
|
7554
8586
|
<xsl:param name="charAtEnd" select="'.'"/>
|
@@ -7742,6 +8774,7 @@
|
|
7742
8774
|
|
7743
8775
|
|
7744
8776
|
|
8777
|
+
|
7745
8778
|
<xsl:value-of select="document('')//*/namespace::un"/>
|
7746
8779
|
|
7747
8780
|
|
@@ -8155,4 +9188,40 @@
|
|
8155
9188
|
<xsl:value-of select="$value"/>
|
8156
9189
|
</xsl:otherwise>
|
8157
9190
|
</xsl:choose>
|
9191
|
+
</xsl:template><xsl:template match="*" mode="print_as_xml">
|
9192
|
+
<xsl:param name="level">0</xsl:param>
|
9193
|
+
|
9194
|
+
<fo:block margin-left="{2*$level}mm">
|
9195
|
+
<xsl:text>
|
9196
|
+
<</xsl:text>
|
9197
|
+
<xsl:value-of select="local-name()"/>
|
9198
|
+
<xsl:for-each select="@*">
|
9199
|
+
<xsl:text> </xsl:text>
|
9200
|
+
<xsl:value-of select="local-name()"/>
|
9201
|
+
<xsl:text>="</xsl:text>
|
9202
|
+
<xsl:value-of select="."/>
|
9203
|
+
<xsl:text>"</xsl:text>
|
9204
|
+
</xsl:for-each>
|
9205
|
+
<xsl:text>></xsl:text>
|
9206
|
+
|
9207
|
+
<xsl:if test="not(*)">
|
9208
|
+
<fo:inline font-weight="bold"><xsl:value-of select="."/></fo:inline>
|
9209
|
+
<xsl:text></</xsl:text>
|
9210
|
+
<xsl:value-of select="local-name()"/>
|
9211
|
+
<xsl:text>></xsl:text>
|
9212
|
+
</xsl:if>
|
9213
|
+
</fo:block>
|
9214
|
+
|
9215
|
+
<xsl:if test="*">
|
9216
|
+
<fo:block>
|
9217
|
+
<xsl:apply-templates mode="print_as_xml">
|
9218
|
+
<xsl:with-param name="level" select="$level + 1"/>
|
9219
|
+
</xsl:apply-templates>
|
9220
|
+
</fo:block>
|
9221
|
+
<fo:block margin-left="{2*$level}mm">
|
9222
|
+
<xsl:text></</xsl:text>
|
9223
|
+
<xsl:value-of select="local-name()"/>
|
9224
|
+
<xsl:text>></xsl:text>
|
9225
|
+
</fo:block>
|
9226
|
+
</xsl:if>
|
8158
9227
|
</xsl:template></xsl:stylesheet>
|