metanorma-csa 2.1.0 → 2.1.1
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/csa/csa.standard.xsl +1042 -114
- data/lib/metanorma/csa/version.rb +1 -1
- data/metanorma-csa.gemspec +1 -1
- metadata +4 -4
@@ -454,6 +454,7 @@
|
|
454
454
|
|
455
455
|
<xsl:template match="csa:p" name="paragraph">
|
456
456
|
<xsl:param name="inline" select="'false'"/>
|
457
|
+
<xsl:param name="split_keep-within-line"/>
|
457
458
|
<xsl:variable name="previous-element" select="local-name(preceding-sibling::*[1])"/>
|
458
459
|
<xsl:variable name="element-name">
|
459
460
|
<xsl:choose>
|
@@ -481,7 +482,9 @@
|
|
481
482
|
</xsl:choose>
|
482
483
|
</xsl:attribute>
|
483
484
|
<xsl:attribute name="line-height">155%</xsl:attribute>
|
484
|
-
<xsl:apply-templates
|
485
|
+
<xsl:apply-templates>
|
486
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
487
|
+
</xsl:apply-templates>
|
485
488
|
</xsl:element>
|
486
489
|
<xsl:if test="$element-name = 'fo:inline' and not($inline = 'true') and not(local-name(..) = 'admonition')">
|
487
490
|
<fo:block margin-bottom="12pt">
|
@@ -571,7 +574,9 @@
|
|
571
574
|
<xsl:text>iVBORw0KGgoAAAANSUhEUgAAASEAAAEhCAYAAAAwHRYbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplYWRhN2RlNC04YzAyLTQ1N2UtYjUwNy0zNGYzY2RjNWE2ZGQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDUyNzBENDc3NjVCMTFFQTlDMDhGMEI2ODhENjUxQkIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDUyNzBENDY3NjVCMTFFQTlDMDhGMEI2ODhENjUxQkIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgSW5EZXNpZ24gMTQuMCAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOmZiZjFiODZmLTIzMjMtM2U0OS1hMDMzLTVlOGQxYThlNmI1YiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmlkOjFlMzVjZTE3LWU5NzAtNDQ1OS05ZjI0LTM1NzcwZWYzMjNjMiIvPiA8L3Jk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</xsl:text>
|
572
575
|
</xsl:variable>
|
573
576
|
|
574
|
-
<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="
|
577
|
+
<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:param name="table_if_debug">false</xsl:param><xsl:variable name="isGenerateTableIF_">
|
578
|
+
false
|
579
|
+
</xsl:variable><xsl:variable name="isGenerateTableIF" select="normalize-space($isGenerateTableIF_)"/><xsl:variable name="lang">
|
575
580
|
<xsl:call-template name="getLang"/>
|
576
581
|
</xsl:variable><xsl:variable name="pageWidth_">
|
577
582
|
215.9
|
@@ -1027,6 +1032,7 @@
|
|
1027
1032
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
1028
1033
|
<xsl:attribute name="border">solid black 1pt</xsl:attribute>
|
1029
1034
|
<xsl:attribute name="padding-left">1mm</xsl:attribute>
|
1035
|
+
<xsl:attribute name="padding-right">1mm</xsl:attribute>
|
1030
1036
|
<xsl:attribute name="display-align">center</xsl:attribute>
|
1031
1037
|
|
1032
1038
|
|
@@ -1045,6 +1051,7 @@
|
|
1045
1051
|
<xsl:attribute name="display-align">center</xsl:attribute>
|
1046
1052
|
<xsl:attribute name="border">solid black 1pt</xsl:attribute>
|
1047
1053
|
<xsl:attribute name="padding-left">1mm</xsl:attribute>
|
1054
|
+
<xsl:attribute name="padding-right">1mm</xsl:attribute>
|
1048
1055
|
|
1049
1056
|
|
1050
1057
|
|
@@ -1127,7 +1134,8 @@
|
|
1127
1134
|
</xsl:attribute-set><xsl:attribute-set name="dt-row-style">
|
1128
1135
|
|
1129
1136
|
|
1130
|
-
</xsl:attribute-set><xsl:attribute-set name="dt-style">
|
1137
|
+
</xsl:attribute-set><xsl:attribute-set name="dt-cell-style">
|
1138
|
+
</xsl:attribute-set><xsl:attribute-set name="dt-block-style">
|
1131
1139
|
<xsl:attribute name="margin-top">6pt</xsl:attribute>
|
1132
1140
|
|
1133
1141
|
|
@@ -1139,6 +1147,8 @@
|
|
1139
1147
|
|
1140
1148
|
|
1141
1149
|
|
1150
|
+
</xsl:attribute-set><xsl:attribute-set name="dd-cell-style">
|
1151
|
+
<xsl:attribute name="padding-left">2mm</xsl:attribute>
|
1142
1152
|
</xsl:attribute-set><xsl:attribute-set name="appendix-style">
|
1143
1153
|
|
1144
1154
|
|
@@ -1996,7 +2006,38 @@
|
|
1996
2006
|
</xsl:template><xsl:template match="*[local-name()='br']">
|
1997
2007
|
<xsl:value-of select="$linebreak"/>
|
1998
2008
|
</xsl:template><xsl:template match="*[local-name() = 'keep-together_within-line']">
|
1999
|
-
<
|
2009
|
+
<xsl:param name="split_keep-within-line"/>
|
2010
|
+
|
2011
|
+
<!-- <fo:inline>split_keep-within-line='<xsl:value-of select="$split_keep-within-line"/>'</fo:inline> -->
|
2012
|
+
<xsl:choose>
|
2013
|
+
|
2014
|
+
<xsl:when test="normalize-space($split_keep-within-line) = 'true'">
|
2015
|
+
<xsl:variable name="sep">_</xsl:variable>
|
2016
|
+
<xsl:variable name="items">
|
2017
|
+
<xsl:call-template name="split">
|
2018
|
+
<xsl:with-param name="pText" select="."/>
|
2019
|
+
<xsl:with-param name="sep" select="$sep"/>
|
2020
|
+
<xsl:with-param name="normalize-space">false</xsl:with-param>
|
2021
|
+
<xsl:with-param name="keep_sep">true</xsl:with-param>
|
2022
|
+
</xsl:call-template>
|
2023
|
+
</xsl:variable>
|
2024
|
+
<xsl:for-each select="xalan:nodeset($items)/item">
|
2025
|
+
<xsl:choose>
|
2026
|
+
<xsl:when test=". = $sep">
|
2027
|
+
<xsl:value-of select="$sep"/><xsl:value-of select="$zero_width_space"/>
|
2028
|
+
</xsl:when>
|
2029
|
+
<xsl:otherwise>
|
2030
|
+
<fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
|
2031
|
+
</xsl:otherwise>
|
2032
|
+
</xsl:choose>
|
2033
|
+
</xsl:for-each>
|
2034
|
+
</xsl:when>
|
2035
|
+
|
2036
|
+
<xsl:otherwise>
|
2037
|
+
<fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
|
2038
|
+
</xsl:otherwise>
|
2039
|
+
|
2040
|
+
</xsl:choose>
|
2000
2041
|
</xsl:template><xsl:template match="*[local-name()='copyright-statement']">
|
2001
2042
|
<fo:block xsl:use-attribute-sets="copyright-statement-style">
|
2002
2043
|
<xsl:apply-templates/>
|
@@ -2088,9 +2129,14 @@
|
|
2088
2129
|
|
2089
2130
|
<xsl:variable name="table">
|
2090
2131
|
|
2091
|
-
<xsl:variable name="simple-table">
|
2092
|
-
<xsl:call-template name="getSimpleTable"
|
2132
|
+
<xsl:variable name="simple-table">
|
2133
|
+
<xsl:call-template name="getSimpleTable">
|
2134
|
+
<xsl:with-param name="id" select="@id"/>
|
2135
|
+
</xsl:call-template>
|
2093
2136
|
</xsl:variable>
|
2137
|
+
<!-- <xsl:variable name="simple-table" select="xalan:nodeset($simple-table_)"/> -->
|
2138
|
+
|
2139
|
+
<!-- simple-table=<xsl:copy-of select="$simple-table"/> -->
|
2094
2140
|
|
2095
2141
|
|
2096
2142
|
<!-- Display table's name before table as standalone block -->
|
@@ -2111,7 +2157,23 @@
|
|
2111
2157
|
</xsl:call-template>
|
2112
2158
|
</xsl:if>
|
2113
2159
|
</xsl:variable>
|
2114
|
-
<!--
|
2160
|
+
<!-- <xsl:variable name="colwidths" select="xalan:nodeset($colwidths_)"/> -->
|
2161
|
+
|
2162
|
+
<!-- DEBUG -->
|
2163
|
+
<xsl:if test="$table_if_debug = 'true'">
|
2164
|
+
<fo:block font-size="60%">
|
2165
|
+
<xsl:apply-templates select="xalan:nodeset($colwidths)" mode="print_as_xml"/>
|
2166
|
+
</fo:block>
|
2167
|
+
</xsl:if>
|
2168
|
+
|
2169
|
+
|
2170
|
+
<!-- <xsl:copy-of select="$colwidths"/> -->
|
2171
|
+
|
2172
|
+
<!-- <xsl:text disable-output-escaping="yes"><!- -</xsl:text>
|
2173
|
+
DEBUG
|
2174
|
+
colwidths=<xsl:copy-of select="$colwidths"/>
|
2175
|
+
<xsl:text disable-output-escaping="yes">- -></xsl:text> -->
|
2176
|
+
|
2115
2177
|
|
2116
2178
|
|
2117
2179
|
<xsl:variable name="margin-side">
|
@@ -2178,9 +2240,17 @@
|
|
2178
2240
|
</xsl:element>
|
2179
2241
|
</xsl:variable>
|
2180
2242
|
|
2243
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
2244
|
+
<!-- to determine start of table -->
|
2245
|
+
<fo:block id="{concat('table_if_start_',@id)}" keep-with-next="always" font-size="1pt">Start table '<xsl:value-of select="@id"/>'.</fo:block>
|
2246
|
+
</xsl:if>
|
2181
2247
|
|
2182
2248
|
<fo:table id="{@id}">
|
2183
2249
|
|
2250
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
2251
|
+
<xsl:attribute name="wrap-option">no-wrap</xsl:attribute>
|
2252
|
+
</xsl:if>
|
2253
|
+
|
2184
2254
|
<xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
|
2185
2255
|
<xsl:attribute name="{local-name()}">
|
2186
2256
|
<xsl:value-of select="."/>
|
@@ -2194,24 +2264,47 @@
|
|
2194
2264
|
|
2195
2265
|
|
2196
2266
|
<xsl:choose>
|
2197
|
-
<xsl:when test="
|
2198
|
-
|
2199
|
-
|
2200
|
-
|
2267
|
+
<xsl:when test="$isGenerateTableIF = 'true'">
|
2268
|
+
<!-- generate IF for table widths -->
|
2269
|
+
<!-- example:
|
2270
|
+
<tr>
|
2271
|
+
<td valign="top" align="left" id="tab-symdu_1_1">
|
2272
|
+
<p>Symbol</p>
|
2273
|
+
<word id="tab-symdu_1_1_word_1">Symbol</word>
|
2274
|
+
</td>
|
2275
|
+
<td valign="top" align="left" id="tab-symdu_1_2">
|
2276
|
+
<p>Description</p>
|
2277
|
+
<word id="tab-symdu_1_2_word_1">Description</word>
|
2278
|
+
</td>
|
2279
|
+
</tr>
|
2280
|
+
-->
|
2281
|
+
<xsl:apply-templates select="xalan:nodeset($simple-table)" mode="process_table-if"/>
|
2282
|
+
|
2201
2283
|
</xsl:when>
|
2202
2284
|
<xsl:otherwise>
|
2203
|
-
<xsl:call-template name="insertTableColumnWidth">
|
2204
|
-
<xsl:with-param name="colwidths" select="$colwidths"/>
|
2205
|
-
</xsl:call-template>
|
2206
|
-
</xsl:otherwise>
|
2207
|
-
</xsl:choose>
|
2208
2285
|
|
2209
|
-
|
2210
|
-
|
2211
|
-
|
2212
|
-
|
2213
|
-
|
2214
|
-
|
2286
|
+
<xsl:choose>
|
2287
|
+
<xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
|
2288
|
+
<xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
|
2289
|
+
<fo:table-column column-width="{@width}"/>
|
2290
|
+
</xsl:for-each>
|
2291
|
+
</xsl:when>
|
2292
|
+
<xsl:otherwise>
|
2293
|
+
<xsl:call-template name="insertTableColumnWidth">
|
2294
|
+
<xsl:with-param name="colwidths" select="$colwidths"/>
|
2295
|
+
</xsl:call-template>
|
2296
|
+
</xsl:otherwise>
|
2297
|
+
</xsl:choose>
|
2298
|
+
|
2299
|
+
<xsl:choose>
|
2300
|
+
<xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
|
2301
|
+
<xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
|
2302
|
+
</xsl:when>
|
2303
|
+
<xsl:otherwise>
|
2304
|
+
<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 -->
|
2305
|
+
</xsl:otherwise>
|
2306
|
+
</xsl:choose>
|
2307
|
+
|
2215
2308
|
</xsl:otherwise>
|
2216
2309
|
</xsl:choose>
|
2217
2310
|
|
@@ -2314,11 +2407,22 @@
|
|
2314
2407
|
<xsl:variable name="columns-with-colspan" select="count($table-row/*[@colspan])"/>
|
2315
2408
|
<xsl:value-of select="$columns-count + $sum-colspans - $columns-with-colspan"/>
|
2316
2409
|
</xsl:template><xsl:template name="calculate-column-widths">
|
2410
|
+
<xsl:param name="table"/>
|
2411
|
+
<xsl:param name="cols-count"/>
|
2412
|
+
|
2413
|
+
<xsl:call-template name="calculate-column-widths-proportional">
|
2414
|
+
<xsl:with-param name="cols-count" select="$cols-count"/>
|
2415
|
+
<xsl:with-param name="table" select="$table"/>
|
2416
|
+
</xsl:call-template>
|
2417
|
+
|
2418
|
+
</xsl:template><xsl:template name="calculate-column-widths-proportional">
|
2317
2419
|
<xsl:param name="table"/>
|
2318
2420
|
<xsl:param name="cols-count"/>
|
2319
2421
|
<xsl:param name="curr-col" select="1"/>
|
2320
2422
|
<xsl:param name="width" select="0"/>
|
2321
2423
|
|
2424
|
+
<!-- table=<xsl:copy-of select="$table"/> -->
|
2425
|
+
|
2322
2426
|
<xsl:if test="$curr-col <= $cols-count">
|
2323
2427
|
<xsl:variable name="widths">
|
2324
2428
|
<xsl:choose>
|
@@ -2356,10 +2460,15 @@
|
|
2356
2460
|
</xsl:for-each>
|
2357
2461
|
</xsl:when>
|
2358
2462
|
<xsl:otherwise>
|
2359
|
-
<xsl:
|
2463
|
+
<!-- <curr_col><xsl:value-of select="$curr-col"/></curr_col> -->
|
2464
|
+
|
2465
|
+
<!-- <table><xsl:copy-of select="$table"/></table>
|
2466
|
+
-->
|
2467
|
+
<xsl:for-each select="xalan:nodeset($table)/*/*[local-name()='tr']">
|
2360
2468
|
<xsl:variable name="td_text">
|
2361
2469
|
<xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
|
2362
2470
|
</xsl:variable>
|
2471
|
+
<!-- <td_text><xsl:value-of select="$td_text"/></td_text> -->
|
2363
2472
|
<xsl:variable name="words">
|
2364
2473
|
<xsl:variable name="string_with_added_zerospaces">
|
2365
2474
|
<xsl:call-template name="add-zero-spaces-java">
|
@@ -2374,6 +2483,7 @@
|
|
2374
2483
|
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
|
2375
2484
|
</xsl:call-template>
|
2376
2485
|
</xsl:variable>
|
2486
|
+
<!-- words=<xsl:copy-of select="$words"/> -->
|
2377
2487
|
<xsl:variable name="max_length">
|
2378
2488
|
<xsl:call-template name="max_length">
|
2379
2489
|
<xsl:with-param name="words" select="xalan:nodeset($words)"/>
|
@@ -2398,6 +2508,8 @@
|
|
2398
2508
|
</xsl:choose>
|
2399
2509
|
</xsl:variable>
|
2400
2510
|
|
2511
|
+
<!-- widths=<xsl:copy-of select="$widths"/> -->
|
2512
|
+
|
2401
2513
|
<column>
|
2402
2514
|
<xsl:for-each select="xalan:nodeset($widths)//width">
|
2403
2515
|
<xsl:sort select="." data-type="number" order="descending"/>
|
@@ -2406,33 +2518,327 @@
|
|
2406
2518
|
</xsl:if>
|
2407
2519
|
</xsl:for-each>
|
2408
2520
|
</column>
|
2409
|
-
<xsl:call-template name="calculate-column-widths">
|
2521
|
+
<xsl:call-template name="calculate-column-widths-proportional">
|
2410
2522
|
<xsl:with-param name="cols-count" select="$cols-count"/>
|
2411
2523
|
<xsl:with-param name="curr-col" select="$curr-col +1"/>
|
2412
2524
|
<xsl:with-param name="table" select="$table"/>
|
2413
2525
|
</xsl:call-template>
|
2414
2526
|
</xsl:if>
|
2415
|
-
</xsl:template><xsl:template match="*[@keep-together.within-line]/text()" priority="2" mode="td_text">
|
2527
|
+
</xsl:template><xsl:template match="*[@keep-together.within-line or local-name() = 'keep-together_within-line']/text()" priority="2" mode="td_text">
|
2416
2528
|
<!-- <xsl:message>DEBUG t1=<xsl:value-of select="."/></xsl:message>
|
2417
2529
|
<xsl:message>DEBUG t2=<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'.','X')"/></xsl:message> -->
|
2418
2530
|
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'.','X')"/>
|
2531
|
+
|
2532
|
+
<!-- if all capitals english letters or digits -->
|
2533
|
+
<xsl:if test="normalize-space(translate(., concat($upper,'0123456789'), '')) = ''">
|
2534
|
+
<xsl:call-template name="repeat">
|
2535
|
+
<xsl:with-param name="char" select="'X'"/>
|
2536
|
+
<xsl:with-param name="count" select="string-length(normalize-space(.)) * 0.5"/>
|
2537
|
+
</xsl:call-template>
|
2538
|
+
</xsl:if>
|
2419
2539
|
</xsl:template><xsl:template match="text()" mode="td_text">
|
2420
2540
|
<xsl:value-of select="translate(., $zero_width_space, ' ')"/><xsl:text> </xsl:text>
|
2421
2541
|
</xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
|
2422
2542
|
<xsl:value-of select="*[local-name()='origin']/@citeas"/>
|
2423
2543
|
</xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
|
2424
2544
|
<xsl:value-of select="@target"/>
|
2425
|
-
</xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
|
2426
|
-
<xsl:
|
2427
|
-
<xsl:
|
2428
|
-
<xsl:
|
2429
|
-
<xsl:
|
2545
|
+
</xsl:template><xsl:template match="*[local-name()='math']" mode="td_text" name="math_length">
|
2546
|
+
<xsl:if test="$isGenerateTableIF = 'false'">
|
2547
|
+
<xsl:variable name="mathml_">
|
2548
|
+
<xsl:for-each select="*">
|
2549
|
+
<xsl:if test="local-name() != 'unit' and local-name() != 'prefix' and local-name() != 'dimension' and local-name() != 'quantity'">
|
2550
|
+
<xsl:copy-of select="."/>
|
2551
|
+
</xsl:if>
|
2552
|
+
</xsl:for-each>
|
2553
|
+
</xsl:variable>
|
2554
|
+
<xsl:variable name="mathml" select="xalan:nodeset($mathml_)"/>
|
2555
|
+
|
2556
|
+
<xsl:variable name="math_text">
|
2557
|
+
<xsl:value-of select="normalize-space($mathml)"/>
|
2558
|
+
<xsl:for-each select="$mathml//@open"><xsl:value-of select="."/></xsl:for-each>
|
2559
|
+
<xsl:for-each select="$mathml//@close"><xsl:value-of select="."/></xsl:for-each>
|
2560
|
+
</xsl:variable>
|
2561
|
+
<xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
|
2562
|
+
</xsl:if>
|
2563
|
+
</xsl:template><xsl:template name="calculate-column-widths-autolayout-algorithm">
|
2564
|
+
<xsl:param name="table"/>
|
2565
|
+
<xsl:param name="if">false</xsl:param> <!-- via intermediate format -->
|
2566
|
+
|
2567
|
+
<!-- The algorithm uses two passes through the table data and scales linearly with the size of the table -->
|
2568
|
+
|
2569
|
+
<!-- In the first pass, line wrapping is disabled, and the user agent keeps track of the minimum and maximum width of each cell. -->
|
2570
|
+
|
2571
|
+
<!-- Since line wrap has been disabled, paragraphs are treated as long lines unless broken by BR elements. -->
|
2572
|
+
|
2573
|
+
<!-- get current table id -->
|
2574
|
+
<xsl:variable name="table_id" select="@id"/>
|
2575
|
+
<!-- find table by id in the file 'table_widths' -->
|
2576
|
+
<xsl:variable name="table-if_" select="$table_widths_from_if//table[@id = $table_id]"/>
|
2577
|
+
<xsl:variable name="table-if" select="xalan:nodeset($table-if_)"/>
|
2578
|
+
|
2579
|
+
|
2580
|
+
<!-- table='<xsl:copy-of select="$table"/>' -->
|
2581
|
+
<!-- table_id='<xsl:value-of select="$table_id"/>\ -->
|
2582
|
+
<!-- table-if='<xsl:copy-of select="$table-if"/>' -->
|
2583
|
+
<!-- table_widths_from_if='<xsl:copy-of select="$table_widths_from_if"/>' -->
|
2584
|
+
|
2585
|
+
<xsl:variable name="table_with_cell_widths_">
|
2586
|
+
<xsl:choose>
|
2587
|
+
<xsl:when test="$if = 'true' and normalize-space($table-if) != ''"> <!-- if we read column's width from IF and there is table in IF -->
|
2588
|
+
|
2589
|
+
<!-- Example: <column>10</column>
|
2590
|
+
<column>11</column>
|
2591
|
+
-->
|
2592
|
+
<xsl:apply-templates select="$table-if" mode="determine_cell_widths-if"/>
|
2593
|
+
</xsl:when>
|
2594
|
+
<xsl:otherwise>
|
2595
|
+
<xsl:apply-templates select="xalan:nodeset($table)" mode="determine_cell_widths"/>
|
2596
|
+
</xsl:otherwise>
|
2597
|
+
</xsl:choose>
|
2598
|
+
</xsl:variable>
|
2599
|
+
<xsl:variable name="table_with_cell_widths" select="xalan:nodeset($table_with_cell_widths_)"/>
|
2600
|
+
|
2601
|
+
<xsl:if test="$table_if_debug = 'true'">
|
2602
|
+
<xsl:copy-of select="$table_with_cell_widths"/>
|
2603
|
+
</xsl:if>
|
2604
|
+
|
2605
|
+
|
2606
|
+
<!-- The minimum and maximum cell widths are then used to determine the corresponding minimum and maximum widths for the columns. -->
|
2607
|
+
|
2608
|
+
<xsl:variable name="column_widths_">
|
2609
|
+
<!-- iteration of columns -->
|
2610
|
+
<xsl:for-each select="$table_with_cell_widths//tr[1]/td">
|
2611
|
+
<xsl:variable name="pos" select="position()"/>
|
2612
|
+
<column>
|
2613
|
+
<xsl:attribute name="width_max">
|
2614
|
+
<xsl:for-each select="ancestor::tbody//tr/td[$pos]/@width_max">
|
2615
|
+
<xsl:sort select="." data-type="number" order="descending"/>
|
2616
|
+
<xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
|
2617
|
+
</xsl:for-each>
|
2618
|
+
</xsl:attribute>
|
2619
|
+
<xsl:attribute name="width_min">
|
2620
|
+
<xsl:for-each select="ancestor::tbody//tr/td[$pos]/@width_min">
|
2621
|
+
<xsl:sort select="." data-type="number" order="descending"/>
|
2622
|
+
<xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
|
2623
|
+
</xsl:for-each>
|
2624
|
+
</xsl:attribute>
|
2625
|
+
</column>
|
2626
|
+
</xsl:for-each>
|
2627
|
+
</xsl:variable>
|
2628
|
+
<xsl:variable name="column_widths" select="xalan:nodeset($column_widths_)"/>
|
2629
|
+
|
2630
|
+
<!-- <column_widths>
|
2631
|
+
<xsl:copy-of select="$column_widths"/>
|
2632
|
+
</column_widths> -->
|
2633
|
+
|
2634
|
+
<!-- These in turn, are used to find the minimum and maximum width for the table. -->
|
2635
|
+
<xsl:variable name="table_widths_">
|
2636
|
+
<table>
|
2637
|
+
<xsl:attribute name="width_max">
|
2638
|
+
<xsl:value-of select="sum($column_widths/column/@width_max)"/>
|
2639
|
+
</xsl:attribute>
|
2640
|
+
<xsl:attribute name="width_min">
|
2641
|
+
<xsl:value-of select="sum($column_widths/column/@width_min)"/>
|
2642
|
+
</xsl:attribute>
|
2643
|
+
</table>
|
2644
|
+
</xsl:variable>
|
2645
|
+
<xsl:variable name="table_widths" select="xalan:nodeset($table_widths_)"/>
|
2646
|
+
|
2647
|
+
<xsl:variable name="page_width">
|
2648
|
+
<xsl:choose>
|
2649
|
+
<xsl:when test="$if = 'true'"><xsl:value-of select="$table-if/@page-width"/></xsl:when>
|
2650
|
+
<xsl:otherwise>75</xsl:otherwise>
|
2651
|
+
</xsl:choose>
|
2652
|
+
</xsl:variable>
|
2653
|
+
|
2654
|
+
<xsl:if test="$table_if_debug = 'true'">
|
2655
|
+
<table_width>
|
2656
|
+
<xsl:copy-of select="$table_widths"/>
|
2657
|
+
</table_width>
|
2658
|
+
<!-- <debug>$table_widths/@width_min=<xsl:value-of select="$table_widths/table/@width_min"/></debug>
|
2659
|
+
<debug>$table_widths/@width_max=<xsl:value-of select="$table_widths/table/@width_max"/></debug>
|
2660
|
+
-->
|
2661
|
+
<debug>$page_width=<xsl:value-of select="$page_width"/></debug>
|
2662
|
+
</xsl:if>
|
2663
|
+
|
2664
|
+
|
2665
|
+
<!-- There are three cases: -->
|
2666
|
+
<xsl:choose>
|
2667
|
+
<!-- 1. The minimum table width is equal to or wider than the available space -->
|
2668
|
+
<xsl:when test="$table_widths/table/@width_min >= $page_width and 1 = 2"> <!-- this condition isn't working see case 3 below -->
|
2669
|
+
<!-- call old algorithm -->
|
2670
|
+
<case1/>
|
2671
|
+
<xsl:variable name="cols-count" select="count(xalan:nodeset($table)/*/tr[1]/td)"/>
|
2672
|
+
<xsl:call-template name="calculate-column-widths-proportional">
|
2673
|
+
<xsl:with-param name="cols-count" select="$cols-count"/>
|
2674
|
+
<xsl:with-param name="table" select="$table"/>
|
2675
|
+
</xsl:call-template>
|
2676
|
+
</xsl:when>
|
2677
|
+
<!-- 2. The maximum table width fits within the available space. In this case, set the columns to their maximum widths. -->
|
2678
|
+
<xsl:when test="$table_widths/table/@width_max <= $page_width">
|
2679
|
+
<case2/>
|
2680
|
+
<autolayout/>
|
2681
|
+
<xsl:for-each select="$column_widths/column/@width_max">
|
2682
|
+
<column divider="100"><xsl:value-of select="."/></column>
|
2683
|
+
</xsl:for-each>
|
2684
|
+
</xsl:when>
|
2685
|
+
<!-- 3. The maximum width of the table is greater than the available space, but the minimum table width is smaller.
|
2686
|
+
In this case, find the difference between the available space and the minimum table width, lets call it W.
|
2687
|
+
Lets also call D the difference between maximum and minimum width of the table.
|
2688
|
+
For each column, let d be the difference between maximum and minimum width of that column.
|
2689
|
+
Now set the column's width to the minimum width plus d times W over D.
|
2690
|
+
This makes columns with large differences between minimum and maximum widths wider than columns with smaller differences. -->
|
2691
|
+
<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)">
|
2692
|
+
<!-- difference between the available space and the minimum table width -->
|
2693
|
+
<xsl:variable name="W" select="$page_width - $table_widths/table/@width_min"/>
|
2694
|
+
<W><xsl:value-of select="$W"/></W>
|
2695
|
+
<!-- difference between maximum and minimum width of the table -->
|
2696
|
+
<xsl:variable name="D" select="$table_widths/table/@width_max - $table_widths/table/@width_min"/>
|
2697
|
+
<D><xsl:value-of select="$D"/></D>
|
2698
|
+
<case3/>
|
2699
|
+
<autolayout/>
|
2700
|
+
<xsl:if test="$table_widths/table/@width_min >= $page_width">
|
2701
|
+
<split_keep-within-line>true</split_keep-within-line>
|
2702
|
+
</xsl:if>
|
2703
|
+
<xsl:for-each select="$column_widths/column">
|
2704
|
+
<!-- difference between maximum and minimum width of that column. -->
|
2705
|
+
<xsl:variable name="d" select="@width_max - @width_min"/>
|
2706
|
+
<d><xsl:value-of select="$d"/></d>
|
2707
|
+
<width_min><xsl:value-of select="@width_min"/></width_min>
|
2708
|
+
<e><xsl:value-of select="$d * $W div $D"/></e>
|
2709
|
+
<!-- set the column's width to the minimum width plus d times W over D. -->
|
2710
|
+
<column divider="100">
|
2711
|
+
<xsl:value-of select="round(@width_min + $d * $W div $D)"/> <!-- * 10 -->
|
2712
|
+
</column>
|
2713
|
+
</xsl:for-each>
|
2714
|
+
|
2715
|
+
</xsl:when>
|
2716
|
+
<xsl:otherwise><unknown_case/></xsl:otherwise>
|
2717
|
+
</xsl:choose>
|
2718
|
+
|
2719
|
+
|
2720
|
+
</xsl:template><xsl:template match="@*|node()" mode="determine_cell_widths">
|
2721
|
+
<xsl:copy>
|
2722
|
+
<xsl:apply-templates select="@*|node()" mode="determine_cell_widths"/>
|
2723
|
+
</xsl:copy>
|
2724
|
+
</xsl:template><xsl:template match="td | th" mode="determine_cell_widths">
|
2725
|
+
<xsl:copy>
|
2726
|
+
<xsl:copy-of select="@*"/>
|
2727
|
+
|
2728
|
+
<!-- The maximum width is given by the widest line. -->
|
2729
|
+
<xsl:variable name="widths_max">
|
2730
|
+
<xsl:for-each select=".//*[local-name() = 'p']">
|
2731
|
+
<xsl:call-template name="add_width"/>
|
2732
|
+
</xsl:for-each>
|
2733
|
+
<xsl:if test="not(*[local-name() = 'p'])">
|
2734
|
+
<xsl:call-template name="add_width"/>
|
2430
2735
|
</xsl:if>
|
2736
|
+
</xsl:variable>
|
2737
|
+
<xsl:variable name="width_max">
|
2738
|
+
<xsl:for-each select="xalan:nodeset($widths_max)//width">
|
2739
|
+
<xsl:sort select="." data-type="number" order="descending"/>
|
2740
|
+
<xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
|
2741
|
+
</xsl:for-each>
|
2742
|
+
</xsl:variable>
|
2743
|
+
<xsl:attribute name="width_max">
|
2744
|
+
<xsl:value-of select="$width_max"/>
|
2745
|
+
</xsl:attribute>
|
2746
|
+
|
2747
|
+
<!-- The minimum width is given by the widest text element (word, image, etc.) -->
|
2748
|
+
<!-- To do: image width -->
|
2749
|
+
<xsl:variable name="td_text">
|
2750
|
+
<xsl:apply-templates select="." mode="td_text"/>
|
2751
|
+
</xsl:variable>
|
2752
|
+
<xsl:variable name="words">
|
2753
|
+
<xsl:variable name="string_with_added_zerospaces">
|
2754
|
+
<xsl:call-template name="add-zero-spaces-java">
|
2755
|
+
<xsl:with-param name="text" select="$td_text"/>
|
2756
|
+
</xsl:call-template>
|
2757
|
+
</xsl:variable>
|
2758
|
+
<xsl:call-template name="tokenize">
|
2759
|
+
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
|
2760
|
+
</xsl:call-template>
|
2761
|
+
</xsl:variable>
|
2762
|
+
|
2763
|
+
<xsl:variable name="max_word_length">
|
2764
|
+
<xsl:call-template name="max_length">
|
2765
|
+
<xsl:with-param name="words" select="xalan:nodeset($words)"/>
|
2766
|
+
</xsl:call-template>
|
2767
|
+
</xsl:variable>
|
2768
|
+
<xsl:variable name="width_min">
|
2769
|
+
<xsl:value-of select="$max_word_length"/>
|
2770
|
+
</xsl:variable>
|
2771
|
+
<xsl:attribute name="width_min">
|
2772
|
+
<xsl:value-of select="$width_min"/>
|
2773
|
+
</xsl:attribute>
|
2774
|
+
<!-- width_max="1" width_min="1.5"> --> <!-- see 'tokenize' template, multiply 1.5 for all latin capitals -->
|
2775
|
+
<xsl:if test="$width_min > $width_max">
|
2776
|
+
<xsl:attribute name="width_max">
|
2777
|
+
<xsl:value-of select="$width_min"/>
|
2778
|
+
</xsl:attribute>
|
2779
|
+
</xsl:if>
|
2780
|
+
<xsl:if test="$width_min = 0">
|
2781
|
+
<xsl:attribute name="width_min">1</xsl:attribute>
|
2782
|
+
</xsl:if>
|
2783
|
+
|
2784
|
+
<xsl:apply-templates select="node()" mode="determine_cell_widths"/>
|
2785
|
+
|
2786
|
+
</xsl:copy>
|
2787
|
+
</xsl:template><xsl:template name="add_width">
|
2788
|
+
<xsl:variable name="p_text"><xsl:apply-templates select="." mode="td_text"/></xsl:variable>
|
2789
|
+
<xsl:variable name="p_text_len_" select="string-length(normalize-space($p_text))"/>
|
2790
|
+
|
2791
|
+
<xsl:variable name="p_text_len">
|
2792
|
+
<xsl:choose>
|
2793
|
+
<xsl:when test="normalize-space(translate($p_text, concat($upper,'0123456789'), '')) = ''"> <!-- english word in CAPITAL letters -->
|
2794
|
+
<xsl:value-of select="$p_text_len_ * 1.5"/>
|
2795
|
+
</xsl:when>
|
2796
|
+
<xsl:otherwise><xsl:value-of select="$p_text_len_"/></xsl:otherwise>
|
2797
|
+
</xsl:choose>
|
2798
|
+
</xsl:variable>
|
2799
|
+
|
2800
|
+
<xsl:variable name="math_addon_text">
|
2801
|
+
<xsl:for-each select=".//*[local-name() = 'math']">
|
2802
|
+
<xsl:apply-templates mode="td_text"/>
|
2431
2803
|
</xsl:for-each>
|
2432
2804
|
</xsl:variable>
|
2805
|
+
<xsl:variable name="math_addon_length" select="string-length(normalize-space($math_addon_text)) * 0.2"/> <!-- plus 20% -->
|
2433
2806
|
|
2434
|
-
<xsl:
|
2435
|
-
|
2807
|
+
<width><xsl:value-of select="$p_text_len + $math_addon_length"/></width>
|
2808
|
+
</xsl:template><xsl:template match="@*|node()" mode="determine_cell_widths-if">
|
2809
|
+
<xsl:copy>
|
2810
|
+
<xsl:apply-templates select="@*|node()" mode="determine_cell_widths-if"/>
|
2811
|
+
</xsl:copy>
|
2812
|
+
</xsl:template><xsl:template match="td | th" mode="determine_cell_widths-if">
|
2813
|
+
<xsl:copy>
|
2814
|
+
<xsl:copy-of select="@*"/>
|
2815
|
+
|
2816
|
+
<!-- The maximum width is given by the widest line. -->
|
2817
|
+
<xsl:attribute name="width_max">
|
2818
|
+
<xsl:for-each select="p_len">
|
2819
|
+
<xsl:sort select="." data-type="number" order="descending"/>
|
2820
|
+
<xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
|
2821
|
+
</xsl:for-each>
|
2822
|
+
</xsl:attribute>
|
2823
|
+
|
2824
|
+
<!-- The minimum width is given by the widest text element (word, image, etc.) -->
|
2825
|
+
<xsl:variable name="width_min">
|
2826
|
+
<xsl:for-each select="word_len">
|
2827
|
+
<xsl:sort select="." data-type="number" order="descending"/>
|
2828
|
+
<xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
|
2829
|
+
</xsl:for-each>
|
2830
|
+
</xsl:variable>
|
2831
|
+
<xsl:attribute name="width_min">
|
2832
|
+
<xsl:value-of select="$width_min"/>
|
2833
|
+
</xsl:attribute>
|
2834
|
+
|
2835
|
+
<xsl:if test="$width_min = 0">
|
2836
|
+
<xsl:attribute name="width_min">1</xsl:attribute>
|
2837
|
+
</xsl:if>
|
2838
|
+
|
2839
|
+
<xsl:apply-templates select="node()" mode="determine_cell_widths-if"/>
|
2840
|
+
|
2841
|
+
</xsl:copy>
|
2436
2842
|
</xsl:template><xsl:template match="*[local-name()='thead']">
|
2437
2843
|
<xsl:param name="cols-count"/>
|
2438
2844
|
<fo:table-header>
|
@@ -2517,6 +2923,7 @@
|
|
2517
2923
|
</xsl:for-each>
|
2518
2924
|
</xsl:when>
|
2519
2925
|
<xsl:otherwise>
|
2926
|
+
<!-- $colwidths=<xsl:copy-of select="$colwidths"/> -->
|
2520
2927
|
<xsl:call-template name="insertTableColumnWidth">
|
2521
2928
|
<xsl:with-param name="colwidths" select="$colwidths"/>
|
2522
2929
|
</xsl:call-template>
|
@@ -2596,6 +3003,52 @@
|
|
2596
3003
|
|
2597
3004
|
</fo:table-body>
|
2598
3005
|
|
3006
|
+
</xsl:template><xsl:template match="/" mode="process_table-if">
|
3007
|
+
<xsl:param name="table_or_dl">table</xsl:param>
|
3008
|
+
<xsl:apply-templates mode="process_table-if">
|
3009
|
+
<xsl:with-param name="table_or_dl" select="$table_or_dl"/>
|
3010
|
+
</xsl:apply-templates>
|
3011
|
+
</xsl:template><xsl:template match="*[local-name()='tbody']" mode="process_table-if">
|
3012
|
+
<xsl:param name="table_or_dl">table</xsl:param>
|
3013
|
+
|
3014
|
+
<fo:table-body>
|
3015
|
+
<xsl:for-each select="*[local-name() = 'tr']">
|
3016
|
+
<xsl:variable name="col_count" select="count(*)"/>
|
3017
|
+
|
3018
|
+
<!-- iteration for each tr/td -->
|
3019
|
+
|
3020
|
+
<xsl:choose>
|
3021
|
+
<xsl:when test="$table_or_dl = 'table'">
|
3022
|
+
<xsl:for-each select="*[local-name() = 'td' or local-name() = 'th']/*">
|
3023
|
+
<fo:table-row number-columns-spanned="{$col_count}">
|
3024
|
+
<!-- <test_table><xsl:copy-of select="."/></test_table> -->
|
3025
|
+
<xsl:call-template name="td"/>
|
3026
|
+
</fo:table-row>
|
3027
|
+
</xsl:for-each>
|
3028
|
+
</xsl:when>
|
3029
|
+
<xsl:otherwise> <!-- $table_or_dl = 'dl' -->
|
3030
|
+
<xsl:for-each select="*[local-name() = 'td' or local-name() = 'th']">
|
3031
|
+
<xsl:variable name="is_dt" select="position() = 1"/>
|
3032
|
+
|
3033
|
+
<xsl:for-each select="*">
|
3034
|
+
<!-- <test><xsl:copy-of select="."/></test> -->
|
3035
|
+
<fo:table-row number-columns-spanned="{$col_count}">
|
3036
|
+
<xsl:choose>
|
3037
|
+
<xsl:when test="$is_dt">
|
3038
|
+
<xsl:call-template name="insert_dt_cell"/>
|
3039
|
+
</xsl:when>
|
3040
|
+
<xsl:otherwise>
|
3041
|
+
<xsl:call-template name="insert_dd_cell"/>
|
3042
|
+
</xsl:otherwise>
|
3043
|
+
</xsl:choose>
|
3044
|
+
</fo:table-row>
|
3045
|
+
</xsl:for-each>
|
3046
|
+
</xsl:for-each>
|
3047
|
+
</xsl:otherwise>
|
3048
|
+
</xsl:choose>
|
3049
|
+
|
3050
|
+
</xsl:for-each>
|
3051
|
+
</fo:table-body>
|
2599
3052
|
</xsl:template><xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
|
2600
3053
|
<fo:table-row xsl:use-attribute-sets="table-header-row-style">
|
2601
3054
|
|
@@ -2682,7 +3135,7 @@
|
|
2682
3135
|
</xsl:choose>
|
2683
3136
|
</xsl:attribute>
|
2684
3137
|
</xsl:if>
|
2685
|
-
</xsl:template><xsl:template match="*[local-name()='td']">
|
3138
|
+
</xsl:template><xsl:template match="*[local-name()='td']" name="td">
|
2686
3139
|
<fo:table-cell xsl:use-attribute-sets="table-cell-style"> <!-- text-align="{@align}" -->
|
2687
3140
|
<xsl:call-template name="setTextAlignment">
|
2688
3141
|
<xsl:with-param name="default">left</xsl:with-param>
|
@@ -2716,11 +3169,24 @@
|
|
2716
3169
|
|
2717
3170
|
<xsl:call-template name="setTableCellAttributes"/>
|
2718
3171
|
|
3172
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
3173
|
+
<xsl:attribute name="border">1pt solid black</xsl:attribute> <!-- border is mandatory, to determine page width -->
|
3174
|
+
<xsl:attribute name="text-align">left</xsl:attribute>
|
3175
|
+
</xsl:if>
|
3176
|
+
|
2719
3177
|
<fo:block>
|
2720
3178
|
|
3179
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
3180
|
+
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
|
3181
|
+
</xsl:if>
|
3182
|
+
|
3183
|
+
|
2721
3184
|
|
2722
3185
|
|
2723
3186
|
<xsl:apply-templates/>
|
3187
|
+
|
3188
|
+
<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"/> -->
|
3189
|
+
|
2724
3190
|
</fo:block>
|
2725
3191
|
</fo:table-cell>
|
2726
3192
|
</xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2">
|
@@ -2917,9 +3383,9 @@
|
|
2917
3383
|
<!-- current hierarchy is 'figure' element -->
|
2918
3384
|
<xsl:variable name="following_dl_colwidths">
|
2919
3385
|
<xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
|
2920
|
-
<xsl:variable name="
|
2921
|
-
<xsl:variable name="doc_ns">
|
2922
|
-
|
3386
|
+
<xsl:variable name="simple-table">
|
3387
|
+
<!-- <xsl:variable name="doc_ns">
|
3388
|
+
<xsl:if test="$namespace = 'bipm'">bipm</xsl:if>
|
2923
3389
|
</xsl:variable>
|
2924
3390
|
<xsl:variable name="ns">
|
2925
3391
|
<xsl:choose>
|
@@ -2930,7 +3396,7 @@
|
|
2930
3396
|
<xsl:value-of select="substring-before(name(/*), '-')"/>
|
2931
3397
|
</xsl:otherwise>
|
2932
3398
|
</xsl:choose>
|
2933
|
-
</xsl:variable>
|
3399
|
+
</xsl:variable> -->
|
2934
3400
|
|
2935
3401
|
<xsl:for-each select="*[local-name() = 'dl'][1]">
|
2936
3402
|
<tbody>
|
@@ -2941,7 +3407,7 @@
|
|
2941
3407
|
|
2942
3408
|
<xsl:call-template name="calculate-column-widths">
|
2943
3409
|
<xsl:with-param name="cols-count" select="2"/>
|
2944
|
-
<xsl:with-param name="table" select="$
|
3410
|
+
<xsl:with-param name="table" select="$simple-table"/>
|
2945
3411
|
</xsl:call-template>
|
2946
3412
|
|
2947
3413
|
</xsl:if>
|
@@ -3121,7 +3587,18 @@
|
|
3121
3587
|
|
3122
3588
|
|
3123
3589
|
|
3590
|
+
|
3591
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
3592
|
+
<!-- to determine start of table -->
|
3593
|
+
<fo:block id="{concat('table_if_start_',@id)}" keep-with-next="always" font-size="1pt">Start table '<xsl:value-of select="@id"/>'.</fo:block>
|
3594
|
+
</xsl:if>
|
3595
|
+
|
3124
3596
|
<fo:table width="95%" table-layout="fixed">
|
3597
|
+
|
3598
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
3599
|
+
<xsl:attribute name="wrap-option">no-wrap</xsl:attribute>
|
3600
|
+
</xsl:if>
|
3601
|
+
|
3125
3602
|
|
3126
3603
|
<xsl:choose>
|
3127
3604
|
<xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'"/>
|
@@ -3130,52 +3607,130 @@
|
|
3130
3607
|
|
3131
3608
|
</xsl:when>
|
3132
3609
|
</xsl:choose>
|
3133
|
-
|
3134
|
-
|
3135
|
-
|
3610
|
+
|
3611
|
+
|
3612
|
+
<xsl:choose>
|
3613
|
+
<xsl:when test="$isGenerateTableIF = 'true'">
|
3614
|
+
<!-- generate IF for table widths -->
|
3615
|
+
<!-- example:
|
3616
|
+
<tr>
|
3617
|
+
<td valign="top" align="left" id="tab-symdu_1_1">
|
3618
|
+
<p>Symbol</p>
|
3619
|
+
<word id="tab-symdu_1_1_word_1">Symbol</word>
|
3620
|
+
</td>
|
3621
|
+
<td valign="top" align="left" id="tab-symdu_1_2">
|
3622
|
+
<p>Description</p>
|
3623
|
+
<word id="tab-symdu_1_2_word_1">Description</word>
|
3624
|
+
</td>
|
3625
|
+
</tr>
|
3626
|
+
-->
|
3136
3627
|
|
3137
|
-
|
3138
|
-
|
3139
|
-
|
3140
|
-
<xsl:
|
3141
|
-
<
|
3142
|
-
|
3143
|
-
|
3144
|
-
|
3145
|
-
|
3146
|
-
|
3147
|
-
|
3148
|
-
|
3149
|
-
|
3150
|
-
|
3151
|
-
|
3152
|
-
|
3153
|
-
|
3154
|
-
|
3155
|
-
|
3156
|
-
|
3157
|
-
|
3158
|
-
|
3159
|
-
|
3160
|
-
|
3161
|
-
|
3162
|
-
|
3163
|
-
|
3164
|
-
|
3165
|
-
|
3166
|
-
|
3167
|
-
|
3168
|
-
|
3169
|
-
|
3170
|
-
|
3171
|
-
|
3172
|
-
|
3628
|
+
<!-- create virtual html table for dl/[dt and dd] -->
|
3629
|
+
<xsl:variable name="simple-table">
|
3630
|
+
|
3631
|
+
<xsl:variable name="dl_table">
|
3632
|
+
<tbody>
|
3633
|
+
<xsl:apply-templates mode="dl_if">
|
3634
|
+
<xsl:with-param name="id" select="@id"/>
|
3635
|
+
</xsl:apply-templates>
|
3636
|
+
</tbody>
|
3637
|
+
</xsl:variable>
|
3638
|
+
|
3639
|
+
<!-- dl_table='<xsl:copy-of select="$dl_table"/>' -->
|
3640
|
+
|
3641
|
+
<!-- Step: replace <br/> to <p>...</p> -->
|
3642
|
+
<xsl:variable name="table_without_br">
|
3643
|
+
<xsl:apply-templates select="xalan:nodeset($dl_table)" mode="table-without-br"/>
|
3644
|
+
</xsl:variable>
|
3645
|
+
|
3646
|
+
<!-- table_without_br='<xsl:copy-of select="$table_without_br"/>' -->
|
3647
|
+
|
3648
|
+
<!-- Step: add id to each cell -->
|
3649
|
+
<!-- add <word>...</word> for each word, image, math -->
|
3650
|
+
<xsl:variable name="simple-table-id">
|
3651
|
+
<xsl:apply-templates select="xalan:nodeset($table_without_br)" mode="simple-table-id">
|
3652
|
+
<xsl:with-param name="id" select="@id"/>
|
3653
|
+
</xsl:apply-templates>
|
3654
|
+
</xsl:variable>
|
3655
|
+
|
3656
|
+
<!-- simple-table-id='<xsl:copy-of select="$simple-table-id"/>' -->
|
3657
|
+
|
3658
|
+
<xsl:copy-of select="xalan:nodeset($simple-table-id)"/>
|
3659
|
+
|
3660
|
+
</xsl:variable>
|
3661
|
+
|
3662
|
+
<!-- DEBUG: simple-table<xsl:copy-of select="$simple-table"/> -->
|
3663
|
+
|
3664
|
+
<xsl:apply-templates select="xalan:nodeset($simple-table)" mode="process_table-if">
|
3665
|
+
<xsl:with-param name="table_or_dl">dl</xsl:with-param>
|
3666
|
+
</xsl:apply-templates>
|
3667
|
+
|
3668
|
+
</xsl:when>
|
3669
|
+
<xsl:otherwise>
|
3173
3670
|
|
3174
|
-
|
3175
|
-
|
3176
|
-
|
3177
|
-
|
3178
|
-
|
3671
|
+
<xsl:variable name="simple-table">
|
3672
|
+
|
3673
|
+
<xsl:variable name="dl_table">
|
3674
|
+
<tbody>
|
3675
|
+
<xsl:apply-templates mode="dl">
|
3676
|
+
<xsl:with-param name="id" select="@id"/>
|
3677
|
+
</xsl:apply-templates>
|
3678
|
+
</tbody>
|
3679
|
+
</xsl:variable>
|
3680
|
+
|
3681
|
+
<xsl:copy-of select="$dl_table"/>
|
3682
|
+
</xsl:variable>
|
3683
|
+
|
3684
|
+
<xsl:variable name="colwidths">
|
3685
|
+
<xsl:call-template name="calculate-column-widths">
|
3686
|
+
<xsl:with-param name="cols-count" select="2"/>
|
3687
|
+
<xsl:with-param name="table" select="$simple-table"/>
|
3688
|
+
</xsl:call-template>
|
3689
|
+
</xsl:variable>
|
3690
|
+
|
3691
|
+
<!-- <xsl:text disable-output-escaping="yes"><!- -</xsl:text>
|
3692
|
+
DEBUG
|
3693
|
+
colwidths=<xsl:copy-of select="$colwidths"/>
|
3694
|
+
<xsl:text disable-output-escaping="yes">- -></xsl:text> -->
|
3695
|
+
|
3696
|
+
<!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
|
3697
|
+
|
3698
|
+
<xsl:variable name="maxlength_dt">
|
3699
|
+
<xsl:call-template name="getMaxLength_dt"/>
|
3700
|
+
</xsl:variable>
|
3701
|
+
|
3702
|
+
<xsl:variable name="isContainsKeepTogetherTag_">
|
3703
|
+
false
|
3704
|
+
</xsl:variable>
|
3705
|
+
<xsl:variable name="isContainsKeepTogetherTag" select="normalize-space($isContainsKeepTogetherTag_)"/>
|
3706
|
+
<!-- isContainsExpressReference=<xsl:value-of select="$isContainsExpressReference"/> -->
|
3707
|
+
|
3708
|
+
|
3709
|
+
<xsl:call-template name="setColumnWidth_dl">
|
3710
|
+
<xsl:with-param name="colwidths" select="$colwidths"/>
|
3711
|
+
<xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
|
3712
|
+
<xsl:with-param name="isContainsKeepTogetherTag" select="$isContainsKeepTogetherTag"/>
|
3713
|
+
</xsl:call-template>
|
3714
|
+
|
3715
|
+
<fo:table-body>
|
3716
|
+
|
3717
|
+
<!-- DEBUG -->
|
3718
|
+
<xsl:if test="$table_if_debug = 'true'">
|
3719
|
+
<fo:table-row>
|
3720
|
+
<fo:table-cell number-columns-spanned="2" font-size="60%">
|
3721
|
+
<xsl:apply-templates select="xalan:nodeset($colwidths)" mode="print_as_xml"/>
|
3722
|
+
</fo:table-cell>
|
3723
|
+
</fo:table-row>
|
3724
|
+
</xsl:if>
|
3725
|
+
|
3726
|
+
<xsl:apply-templates>
|
3727
|
+
<xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
|
3728
|
+
<xsl:with-param name="split_keep-within-line" select="xalan:nodeset($colwidths)/split_keep-within-line"/>
|
3729
|
+
</xsl:apply-templates>
|
3730
|
+
|
3731
|
+
</fo:table-body>
|
3732
|
+
</xsl:otherwise>
|
3733
|
+
</xsl:choose>
|
3179
3734
|
</fo:table>
|
3180
3735
|
</fo:block>
|
3181
3736
|
</fo:block>
|
@@ -3186,6 +3741,9 @@
|
|
3186
3741
|
<xsl:param name="colwidths"/>
|
3187
3742
|
<xsl:param name="maxlength_dt"/>
|
3188
3743
|
<xsl:param name="isContainsKeepTogetherTag"/>
|
3744
|
+
|
3745
|
+
<!-- <colwidths><xsl:copy-of select="$colwidths"/></colwidths> -->
|
3746
|
+
|
3189
3747
|
<xsl:choose>
|
3190
3748
|
<xsl:when test="ancestor::*[local-name()='dl']"><!-- second level, i.e. inlined table -->
|
3191
3749
|
<fo:table-column column-width="50%"/>
|
@@ -3193,6 +3751,11 @@
|
|
3193
3751
|
</xsl:when>
|
3194
3752
|
<xsl:otherwise>
|
3195
3753
|
<xsl:choose>
|
3754
|
+
<xsl:when test="xalan:nodeset($colwidths)/autolayout">
|
3755
|
+
<xsl:call-template name="insertTableColumnWidth">
|
3756
|
+
<xsl:with-param name="colwidths" select="$colwidths"/>
|
3757
|
+
</xsl:call-template>
|
3758
|
+
</xsl:when>
|
3196
3759
|
<xsl:when test="$isContainsKeepTogetherTag">
|
3197
3760
|
<xsl:call-template name="insertTableColumnWidth">
|
3198
3761
|
<xsl:with-param name="colwidths" select="$colwidths"/>
|
@@ -3237,13 +3800,19 @@
|
|
3237
3800
|
</xsl:choose>
|
3238
3801
|
</xsl:template><xsl:template name="insertTableColumnWidth">
|
3239
3802
|
<xsl:param name="colwidths"/>
|
3803
|
+
|
3240
3804
|
<xsl:for-each select="xalan:nodeset($colwidths)//column">
|
3241
3805
|
<xsl:choose>
|
3242
3806
|
<xsl:when test=". = 1 or . = 0">
|
3243
3807
|
<fo:table-column column-width="proportional-column-width(2)"/>
|
3244
3808
|
</xsl:when>
|
3245
3809
|
<xsl:otherwise>
|
3246
|
-
<fo:table-column column-width="proportional-column-width({.})"/>
|
3810
|
+
<!-- <fo:table-column column-width="proportional-column-width({.})"/> -->
|
3811
|
+
<xsl:variable name="divider">
|
3812
|
+
<xsl:value-of select="@divider"/>
|
3813
|
+
<xsl:if test="not(@divider)">1</xsl:if>
|
3814
|
+
</xsl:variable>
|
3815
|
+
<fo:table-column column-width="proportional-column-width({round(. div $divider)})"/>
|
3247
3816
|
</xsl:otherwise>
|
3248
3817
|
</xsl:choose>
|
3249
3818
|
</xsl:for-each>
|
@@ -3305,11 +3874,19 @@
|
|
3305
3874
|
</fo:table-cell>
|
3306
3875
|
</fo:table-row>
|
3307
3876
|
</xsl:template><xsl:template match="*[local-name()='dt']" mode="dl">
|
3877
|
+
<xsl:param name="id"/>
|
3878
|
+
<xsl:variable name="row_number" select="count(preceding-sibling::*[local-name()='dt']) + 1"/>
|
3308
3879
|
<tr>
|
3309
3880
|
<td>
|
3881
|
+
<xsl:attribute name="id">
|
3882
|
+
<xsl:value-of select="concat($id,'_',$row_number,'_1')"/>
|
3883
|
+
</xsl:attribute>
|
3310
3884
|
<xsl:apply-templates/>
|
3311
3885
|
</td>
|
3312
3886
|
<td>
|
3887
|
+
<xsl:attribute name="id">
|
3888
|
+
<xsl:value-of select="concat($id,'_',$row_number,'_2')"/>
|
3889
|
+
</xsl:attribute>
|
3313
3890
|
|
3314
3891
|
<xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]">
|
3315
3892
|
<xsl:with-param name="process">true</xsl:with-param>
|
@@ -3320,50 +3897,122 @@
|
|
3320
3897
|
|
3321
3898
|
</xsl:template><xsl:template match="*[local-name()='dt']">
|
3322
3899
|
<xsl:param name="key_iso"/>
|
3900
|
+
<xsl:param name="split_keep-within-line"/>
|
3323
3901
|
|
3324
3902
|
<fo:table-row xsl:use-attribute-sets="dt-row-style">
|
3325
|
-
<
|
3903
|
+
<xsl:call-template name="insert_dt_cell">
|
3904
|
+
<xsl:with-param name="key_iso" select="$key_iso"/>
|
3905
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
3906
|
+
</xsl:call-template>
|
3907
|
+
<xsl:for-each select="following-sibling::*[local-name()='dd'][1]">
|
3908
|
+
<xsl:call-template name="insert_dd_cell">
|
3909
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
3910
|
+
</xsl:call-template>
|
3911
|
+
</xsl:for-each>
|
3912
|
+
</fo:table-row>
|
3913
|
+
</xsl:template><xsl:template name="insert_dt_cell">
|
3914
|
+
<xsl:param name="key_iso"/>
|
3915
|
+
<xsl:param name="split_keep-within-line"/>
|
3916
|
+
<fo:table-cell xsl:use-attribute-sets="dt-cell-style">
|
3917
|
+
|
3918
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
3919
|
+
<!-- border is mandatory, to calculate real width -->
|
3920
|
+
<xsl:attribute name="border">0.1pt solid black</xsl:attribute>
|
3921
|
+
<xsl:attribute name="text-align">left</xsl:attribute>
|
3922
|
+
</xsl:if>
|
3923
|
+
|
3924
|
+
|
3925
|
+
<fo:block xsl:use-attribute-sets="dt-block-style">
|
3926
|
+
<xsl:copy-of select="@id"/>
|
3927
|
+
|
3928
|
+
<xsl:if test="normalize-space($key_iso) = 'true'">
|
3929
|
+
<xsl:attribute name="margin-top">0</xsl:attribute>
|
3930
|
+
</xsl:if>
|
3931
|
+
|
3932
|
+
|
3933
|
+
|
3934
|
+
<xsl:apply-templates>
|
3935
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
3936
|
+
</xsl:apply-templates>
|
3937
|
+
|
3938
|
+
<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"/> -->
|
3939
|
+
|
3940
|
+
</fo:block>
|
3941
|
+
</fo:table-cell>
|
3942
|
+
</xsl:template><xsl:template name="insert_dd_cell">
|
3943
|
+
<xsl:param name="split_keep-within-line"/>
|
3944
|
+
<fo:table-cell xsl:use-attribute-sets="dd-cell-style">
|
3945
|
+
|
3946
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
3947
|
+
<!-- border is mandatory, to calculate real width -->
|
3948
|
+
<xsl:attribute name="border">0.1pt solid black</xsl:attribute>
|
3949
|
+
</xsl:if>
|
3950
|
+
|
3951
|
+
<fo:block>
|
3952
|
+
|
3953
|
+
<xsl:if test="$isGenerateTableIF = 'true'">
|
3954
|
+
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
|
3955
|
+
</xsl:if>
|
3956
|
+
|
3326
3957
|
|
3327
|
-
<fo:block xsl:use-attribute-sets="dt-style">
|
3328
|
-
<xsl:copy-of select="@id"/>
|
3329
|
-
|
3330
|
-
<xsl:if test="normalize-space($key_iso) = 'true'">
|
3331
|
-
<xsl:attribute name="margin-top">0</xsl:attribute>
|
3332
|
-
</xsl:if>
|
3333
|
-
|
3334
|
-
|
3335
|
-
|
3336
|
-
<xsl:apply-templates/>
|
3337
|
-
</fo:block>
|
3338
|
-
</fo:table-cell>
|
3339
|
-
<fo:table-cell>
|
3340
|
-
<fo:block>
|
3341
|
-
|
3342
3958
|
|
3343
|
-
|
3344
|
-
|
3345
|
-
|
3346
|
-
|
3347
|
-
|
3348
|
-
|
3959
|
+
<xsl:choose>
|
3960
|
+
<xsl:when test="$isGenerateTableIF = 'true'">
|
3961
|
+
<xsl:apply-templates> <!-- following-sibling::*[local-name()='dd'][1] -->
|
3962
|
+
<xsl:with-param name="process">true</xsl:with-param>
|
3963
|
+
</xsl:apply-templates>
|
3964
|
+
</xsl:when>
|
3965
|
+
<xsl:otherwise>
|
3966
|
+
<xsl:apply-templates select="."> <!-- following-sibling::*[local-name()='dd'][1] -->
|
3967
|
+
<xsl:with-param name="process">true</xsl:with-param>
|
3968
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
3969
|
+
</xsl:apply-templates>
|
3970
|
+
</xsl:otherwise>
|
3971
|
+
|
3972
|
+
</xsl:choose>
|
3973
|
+
|
3974
|
+
<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"/> -->
|
3975
|
+
|
3976
|
+
</fo:block>
|
3977
|
+
</fo:table-cell>
|
3349
3978
|
</xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
|
3350
3979
|
<xsl:apply-templates/>
|
3351
3980
|
</xsl:template><xsl:template match="*[local-name()='dd']">
|
3352
3981
|
<xsl:param name="process">false</xsl:param>
|
3982
|
+
<xsl:param name="split_keep-within-line"/>
|
3353
3983
|
<xsl:if test="$process = 'true'">
|
3354
3984
|
<xsl:apply-templates select="@language"/>
|
3355
|
-
<xsl:apply-templates
|
3985
|
+
<xsl:apply-templates>
|
3986
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
3987
|
+
</xsl:apply-templates>
|
3356
3988
|
</xsl:if>
|
3357
3989
|
</xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
|
3358
3990
|
<fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
|
3359
|
-
</xsl:template><xsl:template match="*[local-name()='
|
3991
|
+
</xsl:template><xsl:template match="*[local-name()='dt']" mode="dl_if">
|
3992
|
+
<xsl:param name="id"/>
|
3993
|
+
<xsl:variable name="row_number" select="count(preceding-sibling::*[local-name()='dt']) + 1"/>
|
3994
|
+
<tr>
|
3995
|
+
<td>
|
3996
|
+
<xsl:copy-of select="node()"/>
|
3997
|
+
</td>
|
3998
|
+
<td>
|
3999
|
+
|
4000
|
+
<xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()"/>
|
4001
|
+
|
4002
|
+
</td>
|
4003
|
+
</tr>
|
4004
|
+
|
4005
|
+
</xsl:template><xsl:template match="*[local-name()='dd']" mode="dl_if"/><xsl:template match="*[local-name()='em']">
|
3360
4006
|
<fo:inline font-style="italic">
|
3361
4007
|
<xsl:apply-templates/>
|
3362
4008
|
</fo:inline>
|
3363
4009
|
</xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
|
4010
|
+
<xsl:param name="split_keep-within-line"/>
|
3364
4011
|
<fo:inline font-weight="bold">
|
3365
4012
|
|
3366
|
-
<xsl:apply-templates
|
4013
|
+
<xsl:apply-templates>
|
4014
|
+
<xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
|
4015
|
+
</xsl:apply-templates>
|
3367
4016
|
</fo:inline>
|
3368
4017
|
</xsl:template><xsl:template match="*[local-name()='padding']">
|
3369
4018
|
<fo:inline padding-right="{@value}"> </fo:inline>
|
@@ -3564,6 +4213,10 @@
|
|
3564
4213
|
<xsl:param name="text"/>
|
3565
4214
|
<xsl:param name="separator" select="' '"/>
|
3566
4215
|
<xsl:choose>
|
4216
|
+
|
4217
|
+
<xsl:when test="$isGenerateTableIF = 'true' and not(contains($text, $separator))">
|
4218
|
+
<word><xsl:value-of select="normalize-space($text)"/></word>
|
4219
|
+
</xsl:when>
|
3567
4220
|
<xsl:when test="not(contains($text, $separator))">
|
3568
4221
|
<word>
|
3569
4222
|
<xsl:variable name="len_str_tmp" select="string-length(normalize-space($text))"/>
|
@@ -3608,13 +4261,66 @@
|
|
3608
4261
|
</xsl:when>
|
3609
4262
|
<xsl:otherwise>
|
3610
4263
|
<word>
|
3611
|
-
<xsl:
|
4264
|
+
<xsl:variable name="word" select="normalize-space(substring-before($text, $separator))"/>
|
4265
|
+
<xsl:choose>
|
4266
|
+
<xsl:when test="$isGenerateTableIF = 'true'">
|
4267
|
+
<xsl:value-of select="$word"/>
|
4268
|
+
</xsl:when>
|
4269
|
+
<xsl:otherwise>
|
4270
|
+
<xsl:value-of select="string-length($word)"/>
|
4271
|
+
</xsl:otherwise>
|
4272
|
+
</xsl:choose>
|
3612
4273
|
</word>
|
3613
4274
|
<xsl:call-template name="tokenize">
|
3614
4275
|
<xsl:with-param name="text" select="substring-after($text, $separator)"/>
|
3615
4276
|
</xsl:call-template>
|
3616
4277
|
</xsl:otherwise>
|
3617
4278
|
</xsl:choose>
|
4279
|
+
</xsl:template><xsl:template name="tokenize_with_tags">
|
4280
|
+
<xsl:param name="tags"/>
|
4281
|
+
<xsl:param name="text"/>
|
4282
|
+
<xsl:param name="separator" select="' '"/>
|
4283
|
+
<xsl:choose>
|
4284
|
+
|
4285
|
+
<xsl:when test="not(contains($text, $separator))">
|
4286
|
+
<word>
|
4287
|
+
<xsl:call-template name="enclose_text_in_tags">
|
4288
|
+
<xsl:with-param name="text" select="normalize-space($text)"/>
|
4289
|
+
<xsl:with-param name="tags" select="$tags"/>
|
4290
|
+
</xsl:call-template>
|
4291
|
+
</word>
|
4292
|
+
</xsl:when>
|
4293
|
+
<xsl:otherwise>
|
4294
|
+
<word>
|
4295
|
+
<xsl:call-template name="enclose_text_in_tags">
|
4296
|
+
<xsl:with-param name="text" select="normalize-space(substring-before($text, $separator))"/>
|
4297
|
+
<xsl:with-param name="tags" select="$tags"/>
|
4298
|
+
</xsl:call-template>
|
4299
|
+
</word>
|
4300
|
+
<xsl:call-template name="tokenize_with_tags">
|
4301
|
+
<xsl:with-param name="text" select="substring-after($text, $separator)"/>
|
4302
|
+
</xsl:call-template>
|
4303
|
+
</xsl:otherwise>
|
4304
|
+
</xsl:choose>
|
4305
|
+
</xsl:template><xsl:template name="enclose_text_in_tags">
|
4306
|
+
<xsl:param name="text"/>
|
4307
|
+
<xsl:param name="tags"/>
|
4308
|
+
<xsl:param name="num">1</xsl:param> <!-- default (start) value -->
|
4309
|
+
|
4310
|
+
<xsl:variable name="tag_name" select="normalize-space(xalan:nodeset($tags)//tag[$num])"/>
|
4311
|
+
|
4312
|
+
<xsl:choose>
|
4313
|
+
<xsl:when test="$tag_name = ''"><xsl:value-of select="$text"/></xsl:when>
|
4314
|
+
<xsl:otherwise>
|
4315
|
+
<xsl:element name="{$tag_name}">
|
4316
|
+
<xsl:call-template name="enclose_text_in_tags">
|
4317
|
+
<xsl:with-param name="text" select="$text"/>
|
4318
|
+
<xsl:with-param name="tags" select="$tags"/>
|
4319
|
+
<xsl:with-param name="num" select="$num + 1"/>
|
4320
|
+
</xsl:call-template>
|
4321
|
+
</xsl:element>
|
4322
|
+
</xsl:otherwise>
|
4323
|
+
</xsl:choose>
|
3618
4324
|
</xsl:template><xsl:template name="max_length">
|
3619
4325
|
<xsl:param name="words"/>
|
3620
4326
|
<xsl:for-each select="$words//word">
|
@@ -3715,12 +4421,19 @@
|
|
3715
4421
|
</xsl:otherwise>
|
3716
4422
|
</xsl:choose>
|
3717
4423
|
</xsl:template><xsl:template name="getSimpleTable">
|
4424
|
+
<xsl:param name="id"/>
|
4425
|
+
|
3718
4426
|
<xsl:variable name="simple-table">
|
3719
4427
|
|
4428
|
+
<!-- Step 0. replace <br/> to <p>...</p> -->
|
4429
|
+
<xsl:variable name="table_without_br">
|
4430
|
+
<xsl:apply-templates mode="table-without-br"/>
|
4431
|
+
</xsl:variable>
|
4432
|
+
|
3720
4433
|
<!-- Step 1. colspan processing -->
|
3721
4434
|
<xsl:variable name="simple-table-colspan">
|
3722
4435
|
<tbody>
|
3723
|
-
<xsl:apply-templates mode="simple-table-colspan"/>
|
4436
|
+
<xsl:apply-templates select="xalan:nodeset($table_without_br)" mode="simple-table-colspan"/>
|
3724
4437
|
</tbody>
|
3725
4438
|
</xsl:variable>
|
3726
4439
|
|
@@ -3729,10 +4442,67 @@
|
|
3729
4442
|
<xsl:apply-templates select="xalan:nodeset($simple-table-colspan)" mode="simple-table-rowspan"/>
|
3730
4443
|
</xsl:variable>
|
3731
4444
|
|
3732
|
-
|
3733
|
-
|
4445
|
+
<!-- Step 3: add id to each cell -->
|
4446
|
+
<!-- add <word>...</word> for each word, image, math -->
|
4447
|
+
<xsl:variable name="simple-table-id">
|
4448
|
+
<xsl:apply-templates select="xalan:nodeset($simple-table-rowspan)" mode="simple-table-id">
|
4449
|
+
<xsl:with-param name="id" select="$id"/>
|
4450
|
+
</xsl:apply-templates>
|
4451
|
+
</xsl:variable>
|
4452
|
+
|
4453
|
+
<xsl:copy-of select="xalan:nodeset($simple-table-id)"/>
|
4454
|
+
|
3734
4455
|
</xsl:variable>
|
3735
4456
|
<xsl:copy-of select="$simple-table"/>
|
4457
|
+
</xsl:template><xsl:template match="@*|node()" mode="table-without-br">
|
4458
|
+
<xsl:copy>
|
4459
|
+
<xsl:apply-templates select="@*|node()" mode="table-without-br"/>
|
4460
|
+
</xsl:copy>
|
4461
|
+
</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">
|
4462
|
+
<xsl:copy>
|
4463
|
+
<xsl:copy-of select="@*"/>
|
4464
|
+
<p>
|
4465
|
+
<xsl:copy-of select="node()"/>
|
4466
|
+
</p>
|
4467
|
+
</xsl:copy>
|
4468
|
+
</xsl:template><xsl:template match="*[local-name()='th' or local-name()='td'][*[local-name()='br']]" mode="table-without-br">
|
4469
|
+
<xsl:copy>
|
4470
|
+
<xsl:copy-of select="@*"/>
|
4471
|
+
<xsl:for-each select="*[local-name()='br']">
|
4472
|
+
<xsl:variable name="current_id" select="generate-id()"/>
|
4473
|
+
<p>
|
4474
|
+
<xsl:for-each select="preceding-sibling::node()[following-sibling::*[local-name() = 'br'][1][generate-id() = $current_id]][not(local-name() = 'br')]">
|
4475
|
+
<xsl:copy-of select="."/>
|
4476
|
+
</xsl:for-each>
|
4477
|
+
</p>
|
4478
|
+
<xsl:if test="not(following-sibling::*[local-name() = 'br'])">
|
4479
|
+
<p>
|
4480
|
+
<xsl:for-each select="following-sibling::node()">
|
4481
|
+
<xsl:copy-of select="."/>
|
4482
|
+
</xsl:for-each>
|
4483
|
+
</p>
|
4484
|
+
</xsl:if>
|
4485
|
+
</xsl:for-each>
|
4486
|
+
</xsl:copy>
|
4487
|
+
</xsl:template><xsl:template match="*[local-name()='th' or local-name()='td']/*[local-name() = 'p'][*[local-name()='br']]" mode="table-without-br">
|
4488
|
+
<xsl:for-each select="*[local-name()='br']">
|
4489
|
+
<xsl:variable name="current_id" select="generate-id()"/>
|
4490
|
+
<p>
|
4491
|
+
<xsl:for-each select="preceding-sibling::node()[following-sibling::*[local-name() = 'br'][1][generate-id() = $current_id]][not(local-name() = 'br')]">
|
4492
|
+
<xsl:copy-of select="."/>
|
4493
|
+
</xsl:for-each>
|
4494
|
+
</p>
|
4495
|
+
<xsl:if test="not(following-sibling::*[local-name() = 'br'])">
|
4496
|
+
<p>
|
4497
|
+
<xsl:for-each select="following-sibling::node()">
|
4498
|
+
<xsl:copy-of select="."/>
|
4499
|
+
</xsl:for-each>
|
4500
|
+
</p>
|
4501
|
+
</xsl:if>
|
4502
|
+
</xsl:for-each>
|
4503
|
+
</xsl:template><xsl:template match="text()[not(ancestor::*[local-name() = 'sourcecode'])]" mode="table-without-br">
|
4504
|
+
<xsl:variable name="text" select="translate(.,'	 ','')"/>
|
4505
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),' {2,}',' ')"/>
|
3736
4506
|
</xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
|
3737
4507
|
<xsl:apply-templates mode="simple-table-colspan"/>
|
3738
4508
|
</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">
|
@@ -3822,6 +4592,126 @@
|
|
3822
4592
|
<xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
|
3823
4593
|
<xsl:with-param name="previousRow" select="$newRow"/>
|
3824
4594
|
</xsl:apply-templates>
|
4595
|
+
</xsl:template><xsl:template match="/" mode="simple-table-id">
|
4596
|
+
<xsl:param name="id"/>
|
4597
|
+
<xsl:variable name="id_prefixed" select="concat('table_if_',$id)"/> <!-- table id prefixed by 'table_if_' to simple search in IF -->
|
4598
|
+
<xsl:apply-templates select="@*|node()" mode="simple-table-id">
|
4599
|
+
<xsl:with-param name="id" select="$id_prefixed"/>
|
4600
|
+
</xsl:apply-templates>
|
4601
|
+
</xsl:template><xsl:template match="@*|node()" mode="simple-table-id">
|
4602
|
+
<xsl:param name="id"/>
|
4603
|
+
<xsl:copy>
|
4604
|
+
<xsl:apply-templates select="@*|node()" mode="simple-table-id">
|
4605
|
+
<xsl:with-param name="id" select="$id"/>
|
4606
|
+
</xsl:apply-templates>
|
4607
|
+
</xsl:copy>
|
4608
|
+
</xsl:template><xsl:template match="*[local-name()='tbody']" mode="simple-table-id">
|
4609
|
+
<xsl:param name="id"/>
|
4610
|
+
<xsl:copy>
|
4611
|
+
<xsl:copy-of select="@*"/>
|
4612
|
+
<xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
|
4613
|
+
<xsl:apply-templates select="node()" mode="simple-table-id">
|
4614
|
+
<xsl:with-param name="id" select="$id"/>
|
4615
|
+
</xsl:apply-templates>
|
4616
|
+
</xsl:copy>
|
4617
|
+
</xsl:template><xsl:template match="*[local-name()='th' or local-name()='td']" mode="simple-table-id">
|
4618
|
+
<xsl:param name="id"/>
|
4619
|
+
<xsl:copy>
|
4620
|
+
<xsl:copy-of select="@*"/>
|
4621
|
+
<xsl:variable name="row_number" select="count(../preceding-sibling::*) + 1"/>
|
4622
|
+
<xsl:variable name="col_number" select="count(preceding-sibling::*) + 1"/>
|
4623
|
+
<xsl:attribute name="id">
|
4624
|
+
<xsl:value-of select="concat($id,'_',$row_number,'_',$col_number)"/>
|
4625
|
+
</xsl:attribute>
|
4626
|
+
|
4627
|
+
<xsl:for-each select="*[local-name() = 'p']">
|
4628
|
+
<xsl:copy>
|
4629
|
+
<xsl:copy-of select="@*"/>
|
4630
|
+
<xsl:variable name="p_num" select="count(preceding-sibling::*[local-name() = 'p']) + 1"/>
|
4631
|
+
<xsl:attribute name="id">
|
4632
|
+
<xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_p_',$p_num)"/>
|
4633
|
+
</xsl:attribute>
|
4634
|
+
|
4635
|
+
<xsl:copy-of select="node()"/>
|
4636
|
+
</xsl:copy>
|
4637
|
+
</xsl:for-each>
|
4638
|
+
|
4639
|
+
|
4640
|
+
<xsl:if test="$isGenerateTableIF = 'true'"> <!-- split each paragraph to words, image, math -->
|
4641
|
+
|
4642
|
+
<xsl:variable name="td_text">
|
4643
|
+
<xsl:apply-templates select="." mode="td_text_with_formatting"/>
|
4644
|
+
</xsl:variable>
|
4645
|
+
|
4646
|
+
<!-- td_text='<xsl:copy-of select="$td_text"/>' -->
|
4647
|
+
|
4648
|
+
<xsl:variable name="words">
|
4649
|
+
<xsl:for-each select=".//*[local-name() = 'image' or local-name() = 'stem']">
|
4650
|
+
<word>
|
4651
|
+
<xsl:copy-of select="."/>
|
4652
|
+
</word>
|
4653
|
+
</xsl:for-each>
|
4654
|
+
|
4655
|
+
<xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != '']">
|
4656
|
+
<xsl:copy-of select="."/>
|
4657
|
+
</xsl:for-each>
|
4658
|
+
|
4659
|
+
</xsl:variable>
|
4660
|
+
|
4661
|
+
<xsl:for-each select="xalan:nodeset($words)/word">
|
4662
|
+
<xsl:variable name="num" select="count(preceding-sibling::word) + 1"/>
|
4663
|
+
<xsl:copy>
|
4664
|
+
<xsl:attribute name="id">
|
4665
|
+
<xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_word_',$num)"/>
|
4666
|
+
</xsl:attribute>
|
4667
|
+
<xsl:copy-of select="node()"/>
|
4668
|
+
</xsl:copy>
|
4669
|
+
</xsl:for-each>
|
4670
|
+
</xsl:if>
|
4671
|
+
</xsl:copy>
|
4672
|
+
|
4673
|
+
</xsl:template><xsl:template match="@*|node()" mode="td_text_with_formatting">
|
4674
|
+
<xsl:copy>
|
4675
|
+
<xsl:apply-templates select="@*|node()" mode="td_text_with_formatting"/>
|
4676
|
+
</xsl:copy>
|
4677
|
+
</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">
|
4678
|
+
<xsl:variable name="formatting_tags">
|
4679
|
+
<xsl:call-template name="getFormattingTags"/>
|
4680
|
+
</xsl:variable>
|
4681
|
+
<word>
|
4682
|
+
<xsl:call-template name="enclose_text_in_tags">
|
4683
|
+
<xsl:with-param name="text" select="normalize-space(.)"/>
|
4684
|
+
<xsl:with-param name="tags" select="$formatting_tags"/>
|
4685
|
+
</xsl:call-template>
|
4686
|
+
</word>
|
4687
|
+
</xsl:template><xsl:template match="*[local-name() != 'keep-together_within-line']/text()" mode="td_text_with_formatting">
|
4688
|
+
|
4689
|
+
<xsl:variable name="td_text" select="."/>
|
4690
|
+
|
4691
|
+
<xsl:variable name="string_with_added_zerospaces">
|
4692
|
+
<xsl:call-template name="add-zero-spaces-java">
|
4693
|
+
<xsl:with-param name="text" select="$td_text"/>
|
4694
|
+
</xsl:call-template>
|
4695
|
+
</xsl:variable>
|
4696
|
+
|
4697
|
+
<xsl:variable name="formatting_tags">
|
4698
|
+
<xsl:call-template name="getFormattingTags"/>
|
4699
|
+
</xsl:variable>
|
4700
|
+
|
4701
|
+
<!-- <word>text</word> -->
|
4702
|
+
<xsl:call-template name="tokenize_with_tags">
|
4703
|
+
<xsl:with-param name="tags" select="$formatting_tags"/>
|
4704
|
+
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
|
4705
|
+
</xsl:call-template>
|
4706
|
+
</xsl:template><xsl:template name="getFormattingTags">
|
4707
|
+
<tags>
|
4708
|
+
<xsl:if test="ancestor::*[local-name() = 'strong']"><tag>strong</tag></xsl:if>
|
4709
|
+
<xsl:if test="ancestor::*[local-name() = 'em']"><tag>em</tag></xsl:if>
|
4710
|
+
<xsl:if test="ancestor::*[local-name() = 'sub']"><tag>sub</tag></xsl:if>
|
4711
|
+
<xsl:if test="ancestor::*[local-name() = 'sup']"><tag>sup</tag></xsl:if>
|
4712
|
+
<xsl:if test="ancestor::*[local-name() = 'tt']"><tag>tt</tag></xsl:if>
|
4713
|
+
<xsl:if test="ancestor::*[local-name() = 'keep-together_within-line']"><tag>keep-together_within-line</tag></xsl:if>
|
4714
|
+
</tags>
|
3825
4715
|
</xsl:template><xsl:template name="getLang">
|
3826
4716
|
<xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
|
3827
4717
|
<xsl:variable name="language">
|
@@ -5513,7 +6403,9 @@
|
|
5513
6403
|
<!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
|
5514
6404
|
</xsl:if>
|
5515
6405
|
<xsl:variable name="simple-table">
|
5516
|
-
<xsl:call-template name="getSimpleTable"
|
6406
|
+
<xsl:call-template name="getSimpleTable">
|
6407
|
+
<xsl:with-param name="id" select="@id"/>
|
6408
|
+
</xsl:call-template>
|
5517
6409
|
</xsl:variable>
|
5518
6410
|
<xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
|
5519
6411
|
<xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
|
@@ -6464,7 +7356,7 @@
|
|
6464
7356
|
<!-- <fo:inline id="{@id}" font-size="1pt"/> -->
|
6465
7357
|
<fo:inline id="{@id}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:inline>
|
6466
7358
|
<!-- we need to add zero-width space, otherwise this fo:inline is missing in IF xml -->
|
6467
|
-
<xsl:if test="not(following-sibling::node()[normalize-space() != ''])"> </xsl:if>
|
7359
|
+
<xsl:if test="not(following-sibling::node()[normalize-space() != ''])"><fo:inline font-size="1pt"> </fo:inline></xsl:if>
|
6468
7360
|
</xsl:template><xsl:template match="*[local-name() = 'errata']">
|
6469
7361
|
<!-- <row>
|
6470
7362
|
<date>05-07-2013</date>
|
@@ -7859,4 +8751,40 @@
|
|
7859
8751
|
<xsl:value-of select="$value"/>
|
7860
8752
|
</xsl:otherwise>
|
7861
8753
|
</xsl:choose>
|
8754
|
+
</xsl:template><xsl:template match="*" mode="print_as_xml">
|
8755
|
+
<xsl:param name="level">0</xsl:param>
|
8756
|
+
|
8757
|
+
<fo:block margin-left="{2*$level}mm">
|
8758
|
+
<xsl:text>
|
8759
|
+
<</xsl:text>
|
8760
|
+
<xsl:value-of select="local-name()"/>
|
8761
|
+
<xsl:for-each select="@*">
|
8762
|
+
<xsl:text> </xsl:text>
|
8763
|
+
<xsl:value-of select="local-name()"/>
|
8764
|
+
<xsl:text>="</xsl:text>
|
8765
|
+
<xsl:value-of select="."/>
|
8766
|
+
<xsl:text>"</xsl:text>
|
8767
|
+
</xsl:for-each>
|
8768
|
+
<xsl:text>></xsl:text>
|
8769
|
+
|
8770
|
+
<xsl:if test="not(*)">
|
8771
|
+
<fo:inline font-weight="bold"><xsl:value-of select="."/></fo:inline>
|
8772
|
+
<xsl:text></</xsl:text>
|
8773
|
+
<xsl:value-of select="local-name()"/>
|
8774
|
+
<xsl:text>></xsl:text>
|
8775
|
+
</xsl:if>
|
8776
|
+
</fo:block>
|
8777
|
+
|
8778
|
+
<xsl:if test="*">
|
8779
|
+
<fo:block>
|
8780
|
+
<xsl:apply-templates mode="print_as_xml">
|
8781
|
+
<xsl:with-param name="level" select="$level + 1"/>
|
8782
|
+
</xsl:apply-templates>
|
8783
|
+
</fo:block>
|
8784
|
+
<fo:block margin-left="{2*$level}mm">
|
8785
|
+
<xsl:text></</xsl:text>
|
8786
|
+
<xsl:value-of select="local-name()"/>
|
8787
|
+
<xsl:text>></xsl:text>
|
8788
|
+
</fo:block>
|
8789
|
+
</xsl:if>
|
7862
8790
|
</xsl:template></xsl:stylesheet>
|