metanorma-iho 0.5.8 → 0.6.0

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.
@@ -135,7 +135,7 @@
135
135
  <fo:block>
136
136
  <xsl:value-of select="$docidentifier"/>
137
137
  <xsl:text> </xsl:text>
138
- <xsl:apply-templates select="/iho:iho-standard/iho:bibdata/iho:edition"/>
138
+ <xsl:apply-templates select="/iho:iho-standard/iho:bibdata/iho:edition[normalize-space(@language) = '']"/>
139
139
  </fo:block>
140
140
  </fo:block-container>
141
141
  </fo:table-cell>
@@ -463,12 +463,14 @@
463
463
 
464
464
 
465
465
  <xsl:template match="/iho:iho-standard/iho:bibdata/iho:edition">
466
- <xsl:variable name="title-edition">
467
- <xsl:call-template name="getTitle">
468
- <xsl:with-param name="name" select="'title-edition'"/>
469
- </xsl:call-template>
470
- </xsl:variable>
471
- <xsl:value-of select="$title-edition"/>
466
+ <xsl:call-template name="capitalize">
467
+ <xsl:with-param name="str">
468
+ <xsl:call-template name="getLocalizedString">
469
+ <xsl:with-param name="key">edition</xsl:with-param>
470
+ </xsl:call-template>
471
+ </xsl:with-param>
472
+ </xsl:call-template>
473
+ <xsl:text> </xsl:text>
472
474
  <xsl:apply-templates/>
473
475
  </xsl:template>
474
476
 
@@ -775,7 +777,7 @@
775
777
  <xsl:text>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</xsl:text>
776
778
  </xsl:variable>
777
779
 
778
- <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:variable name="lang">
780
+ <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="lang">
779
781
  <xsl:call-template name="getLang"/>
780
782
  </xsl:variable><xsl:variable name="pageWidth_">
781
783
  210
@@ -790,20 +792,7 @@
790
792
  </xsl:variable><xsl:variable name="marginTop" select="normalize-space($marginTop_)"/><xsl:variable name="marginBottom_">
791
793
  25.4
792
794
  </xsl:variable><xsl:variable name="marginBottom" select="normalize-space($marginBottom_)"/><xsl:variable name="titles_">
793
-
794
- <title-edition lang="en">
795
-
796
- <xsl:text>Edition </xsl:text>
797
-
798
- </title-edition>
799
795
 
800
- <title-edition lang="fr">
801
- <xsl:text>Édition </xsl:text>
802
- </title-edition>
803
-
804
- <title-edition lang="ru">
805
- <xsl:text>Издание </xsl:text>
806
- </title-edition>
807
796
 
808
797
  <!-- These titles of Table of contents renders different than determined in localized-strings -->
809
798
  <title-toc lang="en">
@@ -884,7 +873,7 @@
884
873
  </xsl:variable><xsl:variable name="bibdata">
885
874
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
886
875
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
887
- </xsl:variable><xsl:variable name="linebreak">&#8232;</xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:variable name="non_breaking_hyphen">‑</xsl:variable><xsl:variable name="thin_space"> </xsl:variable><xsl:variable name="zero_width_space">​</xsl:variable><xsl:variable name="en_dash">–</xsl:variable><xsl:template name="getTitle">
876
+ </xsl:variable><xsl:variable name="linebreak">&#8232;</xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:variable name="non_breaking_hyphen">‑</xsl:variable><xsl:variable name="thin_space"> </xsl:variable><xsl:variable name="zero_width_space">​</xsl:variable><xsl:variable name="hair_space"> </xsl:variable><xsl:variable name="en_dash">–</xsl:variable><xsl:template name="getTitle">
888
877
  <xsl:param name="name"/>
889
878
  <xsl:param name="lang"/>
890
879
  <xsl:variable name="lang_">
@@ -932,7 +921,7 @@
932
921
  <xsl:variable name="root-style_" select="xalan:nodeset($root-style)"/>
933
922
 
934
923
  <xsl:variable name="additional_fonts_">
935
- <xsl:for-each select="//*[local-name() = 'misc-container'][1]/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value']">
924
+ <xsl:for-each select="//*[contains(local-name(), '-standard')][1]/*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value'] | //*[contains(local-name(), '-standard')][1]/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value']">
936
925
  <xsl:value-of select="."/><xsl:if test="position() != last()">, </xsl:if>
937
926
  </xsl:for-each>
938
927
  </xsl:variable>
@@ -1007,7 +996,6 @@
1007
996
 
1008
997
 
1009
998
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-container-style">
1010
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
1011
999
 
1012
1000
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
1013
1001
  <xsl:attribute name="white-space">pre</xsl:attribute>
@@ -1097,6 +1085,7 @@
1097
1085
 
1098
1086
 
1099
1087
 
1088
+
1100
1089
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
1101
1090
 
1102
1091
 
@@ -2186,22 +2175,32 @@
2186
2175
  <xsl:sort select="@displayorder" data-type="number"/>
2187
2176
  <xsl:apply-templates select="."/>
2188
2177
  </xsl:for-each>
2189
- </xsl:template><xsl:variable name="tag_open">###fo:inline###</xsl:variable><xsl:variable name="tag_close">###/fo:inline###</xsl:variable><xsl:template match="text()" name="text">
2190
- <xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
2191
- <xsl:variable name="text" select="java:replaceAll(java:java.lang.String.new(.),$regex_standard_reference,concat($tag_open,'$1',$tag_close))"/>
2192
- <xsl:call-template name="replace_fo_inline">
2193
- <xsl:with-param name="text" select="$text"/>
2194
- </xsl:call-template>
2195
- </xsl:template><xsl:template name="replace_fo_inline">
2178
+ </xsl:template><xsl:variable name="tag_fo_inline_keep-together_within-line_open">###fo:inline keep-together_within-line###</xsl:variable><xsl:variable name="tag_fo_inline_keep-together_within-line_close">###/fo:inline keep-together_within-line###</xsl:variable><xsl:template match="text()" name="text">
2179
+
2180
+ <xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
2181
+ <xsl:variable name="text" select="java:replaceAll(java:java.lang.String.new(.),$regex_standard_reference,concat($tag_fo_inline_keep-together_within-line_open,'$1',$tag_fo_inline_keep-together_within-line_close))"/>
2182
+ <xsl:call-template name="replace_fo_inline_tags">
2183
+ <xsl:with-param name="tag_open" select="$tag_fo_inline_keep-together_within-line_open"/>
2184
+ <xsl:with-param name="tag_close" select="$tag_fo_inline_keep-together_within-line_close"/>
2185
+ <xsl:with-param name="text" select="$text"/>
2186
+ </xsl:call-template>
2187
+
2188
+ </xsl:template><xsl:template name="replace_fo_inline_tags">
2189
+ <xsl:param name="tag_open"/>
2190
+ <xsl:param name="tag_close"/>
2196
2191
  <xsl:param name="text"/>
2197
2192
  <xsl:choose>
2198
2193
  <xsl:when test="contains($text, $tag_open)">
2199
2194
  <xsl:value-of select="substring-before($text, $tag_open)"/>
2200
- <xsl:text disable-output-escaping="yes">&lt;fo:inline keep-together.within-line="always"&gt;</xsl:text>
2195
+ <!-- <xsl:text disable-output-escaping="yes">&lt;fo:inline keep-together.within-line="always"&gt;</xsl:text> -->
2201
2196
  <xsl:variable name="text_after" select="substring-after($text, $tag_open)"/>
2202
- <xsl:value-of select="substring-before($text_after, $tag_close)"/>
2203
- <xsl:text disable-output-escaping="yes">&lt;/fo:inline&gt;</xsl:text>
2204
- <xsl:call-template name="replace_fo_inline">
2197
+ <fo:inline keep-together.within-line="always">
2198
+ <xsl:value-of select="substring-before($text_after, $tag_close)"/>
2199
+ </fo:inline>
2200
+ <!-- <xsl:text disable-output-escaping="yes">&lt;/fo:inline&gt;</xsl:text> -->
2201
+ <xsl:call-template name="replace_fo_inline_tags">
2202
+ <xsl:with-param name="tag_open" select="$tag_open"/>
2203
+ <xsl:with-param name="tag_close" select="$tag_close"/>
2205
2204
  <xsl:with-param name="text" select="substring-after($text_after, $tag_close)"/>
2206
2205
  </xsl:call-template>
2207
2206
  </xsl:when>
@@ -2209,6 +2208,8 @@
2209
2208
  </xsl:choose>
2210
2209
  </xsl:template><xsl:template match="*[local-name()='br']">
2211
2210
  <xsl:value-of select="$linebreak"/>
2211
+ </xsl:template><xsl:template match="*[local-name() = 'keep-together_within-line']">
2212
+ <fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
2212
2213
  </xsl:template><xsl:template match="*[local-name()='copyright-statement']">
2213
2214
  <fo:block xsl:use-attribute-sets="copyright-statement-style">
2214
2215
  <xsl:apply-templates/>
@@ -2274,8 +2275,23 @@
2274
2275
  </xsl:call-template>
2275
2276
 
2276
2277
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
2277
- <!-- <xsl:call-template name="add-zero-spaces"/> -->
2278
- <xsl:call-template name="add-zero-spaces-java"/>
2278
+ <xsl:choose>
2279
+ <xsl:when test="parent::*[local-name() = 'keep-together_within-line']">
2280
+ <xsl:value-of select="."/>
2281
+ </xsl:when>
2282
+ <xsl:otherwise>
2283
+ <xsl:call-template name="addZeroWidthSpacesToTextNodes"/>
2284
+ </xsl:otherwise>
2285
+ </xsl:choose>
2286
+ </xsl:template><xsl:template name="addZeroWidthSpacesToTextNodes">
2287
+ <xsl:variable name="text"><text><xsl:call-template name="text"/></text></xsl:variable>
2288
+ <!-- <xsl:copy-of select="$text"/> -->
2289
+ <xsl:for-each select="xalan:nodeset($text)/text/node()">
2290
+ <xsl:choose>
2291
+ <xsl:when test="self::text()"><xsl:call-template name="add-zero-spaces-java"/></xsl:when>
2292
+ <xsl:otherwise><xsl:copy-of select="."/></xsl:otherwise> <!-- copy 'as-is' for <fo:inline keep-together.within-line="always" ... -->
2293
+ </xsl:choose>
2294
+ </xsl:for-each>
2279
2295
  </xsl:template><xsl:template match="*[local-name()='table']" name="table">
2280
2296
 
2281
2297
  <xsl:variable name="table-preamble">
@@ -2393,16 +2409,9 @@
2393
2409
  </xsl:for-each>
2394
2410
  </xsl:when>
2395
2411
  <xsl:otherwise>
2396
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
2397
- <xsl:choose>
2398
- <xsl:when test=". = 1 or . = 0">
2399
- <fo:table-column column-width="proportional-column-width(2)"/>
2400
- </xsl:when>
2401
- <xsl:otherwise>
2402
- <fo:table-column column-width="proportional-column-width({.})"/>
2403
- </xsl:otherwise>
2404
- </xsl:choose>
2405
- </xsl:for-each>
2412
+ <xsl:call-template name="insertTableColumnWidth">
2413
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2414
+ </xsl:call-template>
2406
2415
  </xsl:otherwise>
2407
2416
  </xsl:choose>
2408
2417
 
@@ -2566,6 +2575,7 @@
2566
2575
  <xsl:with-param name="text" select="$td_text"/>
2567
2576
  </xsl:call-template>
2568
2577
  </xsl:variable>
2578
+ <!-- <xsl:message>string_with_added_zerospaces=<xsl:value-of select="$string_with_added_zerospaces"/></xsl:message> -->
2569
2579
  <xsl:call-template name="tokenize">
2570
2580
  <!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
2571
2581
  <!-- 2009 thinspace -->
@@ -2578,6 +2588,7 @@
2578
2588
  <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2579
2589
  </xsl:call-template>
2580
2590
  </xsl:variable>
2591
+ <!-- <xsl:message>max_length=<xsl:value-of select="$max_length"/></xsl:message> -->
2581
2592
  <width>
2582
2593
  <xsl:variable name="divider">
2583
2594
  <xsl:choose>
@@ -2610,6 +2621,10 @@
2610
2621
  <xsl:with-param name="table" select="$table"/>
2611
2622
  </xsl:call-template>
2612
2623
  </xsl:if>
2624
+ </xsl:template><xsl:template match="*[@keep-together.within-line]/text()" priority="2" mode="td_text">
2625
+ <!-- <xsl:message>DEBUG t1=<xsl:value-of select="."/></xsl:message>
2626
+ <xsl:message>DEBUG t2=<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'.','X')"/></xsl:message> -->
2627
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'.','X')"/>
2613
2628
  </xsl:template><xsl:template match="text()" mode="td_text">
2614
2629
  <xsl:value-of select="translate(., $zero_width_space, ' ')"/><xsl:text> </xsl:text>
2615
2630
  </xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
@@ -2711,16 +2726,9 @@
2711
2726
  </xsl:for-each>
2712
2727
  </xsl:when>
2713
2728
  <xsl:otherwise>
2714
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
2715
- <xsl:choose>
2716
- <xsl:when test=". = 1 or . = 0">
2717
- <fo:table-column column-width="proportional-column-width(2)"/>
2718
- </xsl:when>
2719
- <xsl:otherwise>
2720
- <fo:table-column column-width="proportional-column-width({.})"/>
2721
- </xsl:otherwise>
2722
- </xsl:choose>
2723
- </xsl:for-each>
2729
+ <xsl:call-template name="insertTableColumnWidth">
2730
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2731
+ </xsl:call-template>
2724
2732
  </xsl:otherwise>
2725
2733
  </xsl:choose>
2726
2734
 
@@ -3261,8 +3269,10 @@
3261
3269
  <!-- and (not(../@class) or ../@class !='pseudocode') -->
3262
3270
  </xsl:variable>
3263
3271
 
3272
+ <xsl:variable name="onlyOneComponent" select="normalize-space($parent = 'formula' and count(*[local-name()='dt']) = 1)"/>
3273
+
3264
3274
  <xsl:choose>
3265
- <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
3275
+ <xsl:when test="$onlyOneComponent = 'true'"> <!-- only one component -->
3266
3276
 
3267
3277
  <fo:block margin-bottom="12pt" text-align="left">
3268
3278
 
@@ -3277,7 +3287,7 @@
3277
3287
  <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
3278
3288
  </fo:block>
3279
3289
 
3280
- </xsl:when>
3290
+ </xsl:when> <!-- END: only one component -->
3281
3291
  <xsl:when test="$parent = 'formula'"> <!-- a few components -->
3282
3292
  <fo:block margin-bottom="12pt" text-align="left">
3283
3293
 
@@ -3291,8 +3301,8 @@
3291
3301
  </xsl:variable>
3292
3302
  <xsl:value-of select="$title-where"/>
3293
3303
  </fo:block>
3294
- </xsl:when>
3295
- <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
3304
+ </xsl:when> <!-- END: a few components -->
3305
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')"> <!-- definition list in a figure -->
3296
3306
  <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
3297
3307
 
3298
3308
 
@@ -3305,11 +3315,11 @@
3305
3315
  </xsl:variable>
3306
3316
  <xsl:value-of select="$title-key"/>
3307
3317
  </fo:block>
3308
- </xsl:when>
3318
+ </xsl:when> <!-- END: definition list in a figure -->
3309
3319
  </xsl:choose>
3310
3320
 
3311
3321
  <!-- a few components -->
3312
- <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
3322
+ <xsl:if test="$onlyOneComponent = 'false'">
3313
3323
  <fo:block>
3314
3324
 
3315
3325
 
@@ -3352,21 +3362,28 @@
3352
3362
  <xsl:apply-templates mode="dl"/>
3353
3363
  </tbody>
3354
3364
  </xsl:variable>
3355
- <!-- html-table<xsl:copy-of select="$html-table"/> -->
3365
+ <!-- DEBUG: html-table<xsl:copy-of select="$html-table"/> -->
3356
3366
  <xsl:variable name="colwidths">
3357
3367
  <xsl:call-template name="calculate-column-widths">
3358
3368
  <xsl:with-param name="cols-count" select="2"/>
3359
3369
  <xsl:with-param name="table" select="$html-table"/>
3360
3370
  </xsl:call-template>
3361
3371
  </xsl:variable>
3362
- <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
3372
+ <!-- DEBUG: colwidths=<xsl:copy-of select="$colwidths"/> -->
3363
3373
  <xsl:variable name="maxlength_dt">
3364
3374
  <xsl:call-template name="getMaxLength_dt"/>
3365
3375
  </xsl:variable>
3376
+ <xsl:variable name="isContainsKeepTogetherTag_">
3377
+ false
3378
+ </xsl:variable>
3379
+ <xsl:variable name="isContainsKeepTogetherTag" select="normalize-space($isContainsKeepTogetherTag_)"/>
3380
+ <!-- isContainsExpressReference=<xsl:value-of select="$isContainsExpressReference"/> -->
3366
3381
  <xsl:call-template name="setColumnWidth_dl">
3367
3382
  <xsl:with-param name="colwidths" select="$colwidths"/>
3368
3383
  <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
3384
+ <xsl:with-param name="isContainsKeepTogetherTag" select="$isContainsKeepTogetherTag"/>
3369
3385
  </xsl:call-template>
3386
+
3370
3387
  <fo:table-body>
3371
3388
  <xsl:apply-templates>
3372
3389
  <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
@@ -3375,12 +3392,13 @@
3375
3392
  </fo:table>
3376
3393
  </fo:block>
3377
3394
  </fo:block>
3378
- </xsl:if>
3395
+ </xsl:if> <!-- END: a few components -->
3379
3396
  </fo:block-container>
3380
3397
  </fo:block-container>
3381
3398
  </xsl:template><xsl:template name="setColumnWidth_dl">
3382
3399
  <xsl:param name="colwidths"/>
3383
3400
  <xsl:param name="maxlength_dt"/>
3401
+ <xsl:param name="isContainsKeepTogetherTag"/>
3384
3402
  <xsl:choose>
3385
3403
  <xsl:when test="ancestor::*[local-name()='dl']"><!-- second level, i.e. inlined table -->
3386
3404
  <fo:table-column column-width="50%"/>
@@ -3388,6 +3406,11 @@
3388
3406
  </xsl:when>
3389
3407
  <xsl:otherwise>
3390
3408
  <xsl:choose>
3409
+ <xsl:when test="$isContainsKeepTogetherTag">
3410
+ <xsl:call-template name="insertTableColumnWidth">
3411
+ <xsl:with-param name="colwidths" select="$colwidths"/>
3412
+ </xsl:call-template>
3413
+ </xsl:when>
3391
3414
  <!-- to set width check most wide chars like `W` -->
3392
3415
  <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 2"> <!-- if dt contains short text like t90, a, etc -->
3393
3416
  <fo:table-column column-width="7%"/>
@@ -3418,20 +3441,25 @@
3418
3441
  <fo:table-column column-width="60%"/>
3419
3442
  </xsl:when>
3420
3443
  <xsl:otherwise>
3421
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
3422
- <xsl:choose>
3423
- <xsl:when test=". = 1 or . = 0">
3424
- <fo:table-column column-width="proportional-column-width(2)"/>
3425
- </xsl:when>
3426
- <xsl:otherwise>
3427
- <fo:table-column column-width="proportional-column-width({.})"/>
3428
- </xsl:otherwise>
3429
- </xsl:choose>
3430
- </xsl:for-each>
3444
+ <xsl:call-template name="insertTableColumnWidth">
3445
+ <xsl:with-param name="colwidths" select="$colwidths"/>
3446
+ </xsl:call-template>
3431
3447
  </xsl:otherwise>
3432
3448
  </xsl:choose>
3433
3449
  </xsl:otherwise>
3434
3450
  </xsl:choose>
3451
+ </xsl:template><xsl:template name="insertTableColumnWidth">
3452
+ <xsl:param name="colwidths"/>
3453
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3454
+ <xsl:choose>
3455
+ <xsl:when test=". = 1 or . = 0">
3456
+ <fo:table-column column-width="proportional-column-width(2)"/>
3457
+ </xsl:when>
3458
+ <xsl:otherwise>
3459
+ <fo:table-column column-width="proportional-column-width({.})"/>
3460
+ </xsl:otherwise>
3461
+ </xsl:choose>
3462
+ </xsl:for-each>
3435
3463
  </xsl:template><xsl:template name="getMaxLength_dt">
3436
3464
  <xsl:variable name="lengths">
3437
3465
  <xsl:for-each select="*[local-name()='dt']">
@@ -3455,7 +3483,6 @@
3455
3483
  <xsl:value-of select="$maxLength"/>
3456
3484
  </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
3457
3485
  <xsl:param name="key_iso"/>
3458
-
3459
3486
  <!-- <tr>
3460
3487
  <td>NOTE</td>
3461
3488
  <td>
@@ -3463,18 +3490,30 @@
3463
3490
  </td>
3464
3491
  </tr>
3465
3492
  -->
3466
- <fo:table-row>
3493
+ <!-- OLD Variant -->
3494
+ <!-- <fo:table-row>
3467
3495
  <fo:table-cell>
3468
3496
  <fo:block margin-top="6pt">
3469
3497
  <xsl:if test="normalize-space($key_iso) = 'true'">
3470
3498
  <xsl:attribute name="margin-top">0</xsl:attribute>
3471
3499
  </xsl:if>
3472
- <xsl:apply-templates select="*[local-name() = 'name']"/>
3500
+ <xsl:apply-templates select="*[local-name() = 'name']" />
3473
3501
  </fo:block>
3474
3502
  </fo:table-cell>
3475
3503
  <fo:table-cell>
3476
3504
  <fo:block>
3477
- <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3505
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]" />
3506
+ </fo:block>
3507
+ </fo:table-cell>
3508
+ </fo:table-row> -->
3509
+ <!-- <tr>
3510
+ <td number-columns-spanned="2">NOTE <xsl:apply-templates /> </td>
3511
+ </tr>
3512
+ -->
3513
+ <fo:table-row>
3514
+ <fo:table-cell number-columns-spanned="2">
3515
+ <fo:block>
3516
+ <xsl:call-template name="note"/>
3478
3517
  </fo:block>
3479
3518
  </fo:table-cell>
3480
3519
  </fo:table-row>
@@ -3576,13 +3615,15 @@
3576
3615
  <xsl:choose>
3577
3616
  <xsl:when test="$font-size = 'inherit'"><xsl:value-of select="$font-size"/></xsl:when>
3578
3617
  <xsl:when test="contains($font-size, '%')"><xsl:value-of select="$font-size"/></xsl:when>
3579
- <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
3618
+ <xsl:when test="ancestor::*[local-name()='note'] or ancestor::*[local-name()='example']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
3580
3619
  <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
3581
3620
  </xsl:choose>
3582
3621
  </xsl:attribute>
3583
3622
  </xsl:if>
3584
3623
  <xsl:apply-templates/>
3585
3624
  </fo:inline>
3625
+ </xsl:template><xsl:template match="*[local-name()='tt']/text()" priority="2">
3626
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
3586
3627
  </xsl:template><xsl:template match="*[local-name()='underline']">
3587
3628
  <fo:inline text-decoration="underline">
3588
3629
  <xsl:apply-templates/>
@@ -3730,41 +3771,50 @@
3730
3771
  <fo:block break-after="page"/>
3731
3772
  <fo:block> </fo:block>
3732
3773
  <fo:block break-after="page"/>
3774
+ </xsl:template><xsl:template match="*[local-name() = 'span']">
3775
+ <xsl:apply-templates/>
3733
3776
  </xsl:template><xsl:template name="tokenize">
3734
3777
  <xsl:param name="text"/>
3735
3778
  <xsl:param name="separator" select="' '"/>
3736
3779
  <xsl:choose>
3737
3780
  <xsl:when test="not(contains($text, $separator))">
3738
3781
  <word>
3739
- <xsl:variable name="str_no_en_chars" select="normalize-space(translate($text, $en_chars, ''))"/>
3740
- <xsl:variable name="len_str_no_en_chars" select="string-length($str_no_en_chars)"/>
3741
3782
  <xsl:variable name="len_str_tmp" select="string-length(normalize-space($text))"/>
3742
- <xsl:variable name="len_str">
3743
- <xsl:choose>
3744
- <xsl:when test="normalize-space(translate($text, $upper, '')) = ''"> <!-- english word in CAPITAL letters -->
3745
- <xsl:value-of select="$len_str_tmp * 1.5"/>
3746
- </xsl:when>
3747
- <xsl:otherwise>
3748
- <xsl:value-of select="$len_str_tmp"/>
3749
- </xsl:otherwise>
3750
- </xsl:choose>
3751
- </xsl:variable>
3752
-
3753
- <!-- <xsl:if test="$len_str_no_en_chars div $len_str &gt; 0.8">
3754
- <xsl:message>
3755
- div=<xsl:value-of select="$len_str_no_en_chars div $len_str"/>
3756
- len_str=<xsl:value-of select="$len_str"/>
3757
- len_str_no_en_chars=<xsl:value-of select="$len_str_no_en_chars"/>
3758
- </xsl:message>
3759
- </xsl:if> -->
3760
- <!-- <len_str_no_en_chars><xsl:value-of select="$len_str_no_en_chars"/></len_str_no_en_chars>
3761
- <len_str><xsl:value-of select="$len_str"/></len_str> -->
3762
3783
  <xsl:choose>
3763
- <xsl:when test="$len_str_no_en_chars div $len_str &gt; 0.8"> <!-- means non-english string -->
3764
- <xsl:value-of select="$len_str - $len_str_no_en_chars"/>
3784
+ <xsl:when test="normalize-space(translate($text, 'X', '')) = ''"> <!-- special case for keep-together.within-line -->
3785
+ <xsl:value-of select="$len_str_tmp"/>
3765
3786
  </xsl:when>
3766
3787
  <xsl:otherwise>
3767
- <xsl:value-of select="$len_str"/>
3788
+ <xsl:variable name="str_no_en_chars" select="normalize-space(translate($text, $en_chars, ''))"/>
3789
+ <xsl:variable name="len_str_no_en_chars" select="string-length($str_no_en_chars)"/>
3790
+ <xsl:variable name="len_str">
3791
+ <xsl:choose>
3792
+ <xsl:when test="normalize-space(translate($text, $upper, '')) = ''"> <!-- english word in CAPITAL letters -->
3793
+ <xsl:value-of select="$len_str_tmp * 1.5"/>
3794
+ </xsl:when>
3795
+ <xsl:otherwise>
3796
+ <xsl:value-of select="$len_str_tmp"/>
3797
+ </xsl:otherwise>
3798
+ </xsl:choose>
3799
+ </xsl:variable>
3800
+
3801
+ <!-- <xsl:if test="$len_str_no_en_chars div $len_str &gt; 0.8">
3802
+ <xsl:message>
3803
+ div=<xsl:value-of select="$len_str_no_en_chars div $len_str"/>
3804
+ len_str=<xsl:value-of select="$len_str"/>
3805
+ len_str_no_en_chars=<xsl:value-of select="$len_str_no_en_chars"/>
3806
+ </xsl:message>
3807
+ </xsl:if> -->
3808
+ <!-- <len_str_no_en_chars><xsl:value-of select="$len_str_no_en_chars"/></len_str_no_en_chars>
3809
+ <len_str><xsl:value-of select="$len_str"/></len_str> -->
3810
+ <xsl:choose>
3811
+ <xsl:when test="$len_str_no_en_chars div $len_str &gt; 0.8"> <!-- means non-english string -->
3812
+ <xsl:value-of select="$len_str - $len_str_no_en_chars"/>
3813
+ </xsl:when>
3814
+ <xsl:otherwise>
3815
+ <xsl:value-of select="$len_str"/>
3816
+ </xsl:otherwise>
3817
+ </xsl:choose>
3768
3818
  </xsl:otherwise>
3769
3819
  </xsl:choose>
3770
3820
  </word>
@@ -4039,6 +4089,9 @@
4039
4089
  <xsl:variable name="isDeleted" select="@deleted"/>
4040
4090
 
4041
4091
  <fo:inline xsl:use-attribute-sets="mathml-style">
4092
+
4093
+
4094
+
4042
4095
 
4043
4096
 
4044
4097
  <xsl:call-template name="setTrackChangesStyles">
@@ -4046,48 +4099,80 @@
4046
4099
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
4047
4100
  </xsl:call-template>
4048
4101
 
4102
+ <xsl:if test="$add_math_as_text = 'true'">
4103
+ <!-- insert helper tag -->
4104
+ <!-- set unique font-size (fiction) -->
4105
+ <xsl:variable name="font-size_sfx"><xsl:number level="any"/></xsl:variable>
4106
+ <fo:inline color="white" font-size="1.{$font-size_sfx}pt" font-style="normal" font-weight="normal"><xsl:value-of select="$zero_width_space"/></fo:inline> <!-- zero width space -->
4107
+ </xsl:if>
4049
4108
 
4050
-
4051
- <xsl:variable name="mathml">
4052
- <xsl:apply-templates select="." mode="mathml"/>
4109
+ <xsl:variable name="mathml_content">
4110
+ <xsl:apply-templates select="." mode="mathml_actual_text"/>
4053
4111
  </xsl:variable>
4054
- <fo:instream-foreign-object fox:alt-text="Math">
4055
4112
 
4113
+
4114
+ <xsl:call-template name="mathml_instream_object">
4115
+ <xsl:with-param name="mathml_content" select="$mathml_content"/>
4116
+ </xsl:call-template>
4056
4117
 
4057
-
4058
- <xsl:variable name="comment_text_following" select="following-sibling::node()[1][self::comment()]"/>
4059
- <xsl:variable name="comment_text_">
4060
- <xsl:choose>
4061
- <xsl:when test="normalize-space($comment_text_following) != ''">
4062
- <xsl:value-of select="$comment_text_following"/>
4063
- </xsl:when>
4064
- <xsl:otherwise>
4065
- <xsl:value-of select="normalize-space(translate(.,' ⁢',' '))"/>
4066
- </xsl:otherwise>
4067
- </xsl:choose>
4068
- </xsl:variable>
4069
- <xsl:variable name="comment_text" select="java:org.metanorma.fop.Util.unescape($comment_text_)"/>
4070
-
4071
- <xsl:if test="normalize-space($comment_text) != ''">
4072
- <!-- put Mathin Alternate Text -->
4073
- <xsl:attribute name="fox:alt-text">
4074
- <xsl:value-of select="java:org.metanorma.fop.Util.unescape($comment_text)"/>
4075
- </xsl:attribute>
4076
- </xsl:if>
4077
-
4078
- <xsl:variable name="mathml_content">
4079
- <xsl:apply-templates select="." mode="mathml_actual_text"/>
4080
- </xsl:variable>
4081
- <!-- put MathML in Actual Text -->
4082
- <xsl:attribute name="fox:actual-text">
4083
- <xsl:value-of select="$mathml_content"/>
4084
- </xsl:attribute>
4085
-
4086
-
4087
-
4088
- <xsl:copy-of select="xalan:nodeset($mathml)"/>
4089
- </fo:instream-foreign-object>
4118
+
4090
4119
  </fo:inline>
4120
+ </xsl:template><xsl:template name="getMathml_comment_text">
4121
+ <xsl:variable name="comment_text_following" select="following-sibling::node()[1][self::comment()]"/>
4122
+ <xsl:variable name="comment_text_">
4123
+ <xsl:choose>
4124
+ <xsl:when test="normalize-space($comment_text_following) != ''">
4125
+ <xsl:value-of select="$comment_text_following"/>
4126
+ </xsl:when>
4127
+ <xsl:otherwise>
4128
+ <xsl:value-of select="normalize-space(translate(.,' ⁢',' '))"/>
4129
+ </xsl:otherwise>
4130
+ </xsl:choose>
4131
+ </xsl:variable>
4132
+ <xsl:variable name="comment_text_2" select="java:org.metanorma.fop.Util.unescape($comment_text_)"/>
4133
+ <xsl:variable name="comment_text" select="java:trim(java:java.lang.String.new($comment_text_2))"/>
4134
+ <xsl:value-of select="$comment_text"/>
4135
+ </xsl:template><xsl:template name="mathml_instream_object">
4136
+ <xsl:param name="comment_text"/>
4137
+ <xsl:param name="mathml_content"/>
4138
+
4139
+ <xsl:variable name="comment_text_">
4140
+ <xsl:choose>
4141
+ <xsl:when test="normalize-space($comment_text) != ''"><xsl:value-of select="$comment_text"/></xsl:when>
4142
+ <xsl:otherwise><xsl:call-template name="getMathml_comment_text"/></xsl:otherwise>
4143
+ </xsl:choose>
4144
+ </xsl:variable>
4145
+
4146
+ <xsl:variable name="mathml">
4147
+ <xsl:apply-templates select="." mode="mathml"/>
4148
+ </xsl:variable>
4149
+
4150
+ <fo:instream-foreign-object fox:alt-text="Math">
4151
+
4152
+
4153
+
4154
+
4155
+
4156
+
4157
+
4158
+ <!-- put MathML in Actual Text -->
4159
+ <!-- DEBUG: mathml_content=<xsl:value-of select="$mathml_content"/> -->
4160
+ <xsl:attribute name="fox:actual-text">
4161
+ <xsl:value-of select="$mathml_content"/>
4162
+ </xsl:attribute>
4163
+
4164
+ <!-- <xsl:if test="$add_math_as_text = 'true'"> -->
4165
+ <xsl:if test="normalize-space($comment_text_) != ''">
4166
+ <!-- put Mathin Alternate Text -->
4167
+ <xsl:attribute name="fox:alt-text">
4168
+ <xsl:value-of select="$comment_text_"/>
4169
+ </xsl:attribute>
4170
+ </xsl:if>
4171
+ <!-- </xsl:if> -->
4172
+
4173
+ <xsl:copy-of select="xalan:nodeset($mathml)"/>
4174
+
4175
+ </fo:instream-foreign-object>
4091
4176
  </xsl:template><xsl:template match="mathml:*" mode="mathml_actual_text">
4092
4177
  <!-- <xsl:text>a+b</xsl:text> -->
4093
4178
  <xsl:text>&lt;</xsl:text>
@@ -4118,7 +4203,9 @@
4118
4203
  <!-- replace start and end spaces to non-break space -->
4119
4204
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
4120
4205
  </xsl:copy>
4121
- </xsl:template><xsl:template match="mathml:math/*[local-name()='unit']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='prefix']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='dimension']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='quantity']" mode="mathml"/><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
4206
+ </xsl:template><xsl:template match="mathml:math/*[local-name()='unit']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='prefix']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='dimension']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='quantity']" mode="mathml"/><xsl:template match="mathml:mtd/mathml:mo/text()[. = '/']" mode="mathml">
4207
+ <xsl:value-of select="."/><xsl:value-of select="$zero_width_space"/>
4208
+ </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
4122
4209
  <xsl:variable name="target">
4123
4210
  <xsl:choose>
4124
4211
  <xsl:when test="@updatetype = 'true'">
@@ -4713,18 +4800,33 @@
4713
4800
  </xsl:template><xsl:template match="*[local-name() = 'svg'][not(@width and @height)]" mode="svg_update">
4714
4801
  <xsl:copy>
4715
4802
  <xsl:apply-templates select="@*" mode="svg_update"/>
4716
- <xsl:variable name="viewbox">
4803
+ <xsl:variable name="viewbox_">
4717
4804
  <xsl:call-template name="split">
4718
4805
  <xsl:with-param name="pText" select="@viewBox"/>
4719
4806
  <xsl:with-param name="sep" select="' '"/>
4720
4807
  </xsl:call-template>
4721
4808
  </xsl:variable>
4809
+ <xsl:variable name="viewbox" select="xalan:nodeset($viewbox_)"/>
4810
+ <xsl:variable name="width" select="normalize-space($viewbox//item[3])"/>
4811
+ <xsl:variable name="height" select="normalize-space($viewbox//item[4])"/>
4812
+
4722
4813
  <xsl:attribute name="width">
4723
- <xsl:value-of select="round(xalan:nodeset($viewbox)//item[3])"/>
4814
+ <xsl:choose>
4815
+ <xsl:when test="$width != ''">
4816
+ <xsl:value-of select="round($width)"/>
4817
+ </xsl:when>
4818
+ <xsl:otherwise>400</xsl:otherwise> <!-- default width -->
4819
+ </xsl:choose>
4724
4820
  </xsl:attribute>
4725
4821
  <xsl:attribute name="height">
4726
- <xsl:value-of select="round(xalan:nodeset($viewbox)//item[4])"/>
4822
+ <xsl:choose>
4823
+ <xsl:when test="$height != ''">
4824
+ <xsl:value-of select="round($height)"/>
4825
+ </xsl:when>
4826
+ <xsl:otherwise>400</xsl:otherwise> <!-- default height -->
4827
+ </xsl:choose>
4727
4828
  </xsl:attribute>
4829
+
4728
4830
  <xsl:apply-templates mode="svg_update"/>
4729
4831
  </xsl:copy>
4730
4832
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][*[local-name() = 'svg']]" priority="3">
@@ -4919,7 +5021,11 @@
4919
5021
  <xsl:apply-templates mode="bookmarks"/>
4920
5022
  </xsl:template><xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
4921
5023
  <xsl:apply-templates select="."/>
4922
- </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'references']/*[local-name() = 'bibitem']" mode="contents"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
5024
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'references']/*[local-name() = 'bibitem']" mode="contents"/><xsl:template match="*[local-name() = 'span']" mode="contents">
5025
+ <xsl:apply-templates mode="contents"/>
5026
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
5027
+ <xsl:apply-templates mode="bookmarks"/>
5028
+ </xsl:template><xsl:template match="*[local-name() = 'span']" mode="bookmarks">
4923
5029
  <xsl:apply-templates mode="bookmarks"/>
4924
5030
  </xsl:template><xsl:template name="addBookmarks">
4925
5031
  <xsl:param name="contents"/>
@@ -5201,7 +5307,9 @@
5201
5307
  <xsl:apply-templates/>
5202
5308
  </xsl:otherwise>
5203
5309
  </xsl:choose>
5204
- </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() = 'tab']" mode="contents_item">
5310
+ </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">
5311
+ <xsl:value-of select="."/>
5312
+ </xsl:template><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
5205
5313
  <xsl:text> </xsl:text>
5206
5314
  </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
5207
5315
  <xsl:copy>
@@ -5232,9 +5340,22 @@
5232
5340
  </xsl:when>
5233
5341
  <xsl:otherwise><xsl:apply-templates mode="contents_item"/></xsl:otherwise>
5234
5342
  </xsl:choose>
5343
+ </xsl:template><xsl:template match="text()" mode="contents_item">
5344
+ <xsl:call-template name="keep_together_standard_number"/>
5345
+ </xsl:template><xsl:template match="*[local-name() = 'span']" mode="contents_item">
5346
+ <xsl:apply-templates mode="contents_item"/>
5235
5347
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
5236
5348
 
5237
5349
  <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
5350
+
5351
+ <xsl:if test="not(ancestor::*[local-name() = 'li']) or ancestor::*[local-name() = 'example']">
5352
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
5353
+ </xsl:if>
5354
+
5355
+ <xsl:if test="ancestor::*[local-name() = 'example']">
5356
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
5357
+ </xsl:if>
5358
+
5238
5359
  <xsl:copy-of select="@id"/>
5239
5360
 
5240
5361
  <xsl:if test="parent::*[local-name() = 'note']">
@@ -5712,39 +5833,67 @@
5712
5833
  </xsl:otherwise>
5713
5834
  </xsl:choose>
5714
5835
  </xsl:template><xsl:template match="*[local-name() = 'example']">
5715
- <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
5716
-
5836
+
5837
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style">
5838
+
5717
5839
 
5840
+
5718
5841
  <xsl:variable name="fo_element">
5719
- <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl']">block</xsl:if>
5842
+ <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl'] or *[not(local-name() = 'name')][1][local-name() = 'sourcecode']">block</xsl:if>
5720
5843
  block
5721
5844
  </xsl:variable>
5722
5845
 
5723
- <!-- display 'EXAMPLE' -->
5724
- <xsl:apply-templates select="*[local-name()='name']">
5725
- <xsl:with-param name="fo_element" select="$fo_element"/>
5726
- </xsl:apply-templates>
5846
+ <fo:block-container margin-left="0mm">
5727
5847
 
5728
- <xsl:choose>
5729
- <xsl:when test="contains(normalize-space($fo_element), 'block')">
5730
- <fo:block-container xsl:use-attribute-sets="example-body-style">
5731
- <fo:block-container margin-left="0mm" margin-right="0mm">
5732
- <xsl:apply-templates select="node()[not(local-name() = 'name')]">
5848
+ <xsl:choose>
5849
+
5850
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
5851
+
5852
+ <!-- display name 'EXAMPLE' in a separate block -->
5853
+ <fo:block>
5854
+ <xsl:apply-templates select="*[local-name()='name']">
5733
5855
  <xsl:with-param name="fo_element" select="$fo_element"/>
5734
5856
  </xsl:apply-templates>
5857
+ </fo:block>
5858
+
5859
+ <fo:block-container xsl:use-attribute-sets="example-body-style">
5860
+ <fo:block-container margin-left="0mm" margin-right="0mm">
5861
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
5862
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5863
+ </xsl:apply-templates>
5864
+ </fo:block-container>
5735
5865
  </fo:block-container>
5736
- </fo:block-container>
5737
- </xsl:when>
5738
- <xsl:otherwise>
5739
- <fo:inline>
5740
- <xsl:apply-templates select="node()[not(local-name() = 'name')]">
5741
- <xsl:with-param name="fo_element" select="$fo_element"/>
5742
- </xsl:apply-templates>
5743
- </fo:inline>
5744
- </xsl:otherwise>
5745
- </xsl:choose>
5746
-
5747
- </fo:block>
5866
+ </xsl:when> <!-- end block -->
5867
+
5868
+ <xsl:otherwise> <!-- inline -->
5869
+
5870
+ <!-- display 'EXAMPLE' and first element in the same line -->
5871
+ <fo:block>
5872
+ <xsl:apply-templates select="*[local-name()='name']">
5873
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5874
+ </xsl:apply-templates>
5875
+ <fo:inline>
5876
+ <xsl:apply-templates select="*[not(local-name() = 'name')][1]">
5877
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5878
+ </xsl:apply-templates>
5879
+ </fo:inline>
5880
+ </fo:block>
5881
+
5882
+ <xsl:if test="*[not(local-name() = 'name')][position() &gt; 1]">
5883
+ <!-- display further elements in blocks -->
5884
+ <fo:block-container xsl:use-attribute-sets="example-body-style">
5885
+ <fo:block-container margin-left="0mm" margin-right="0mm">
5886
+ <xsl:apply-templates select="*[not(local-name() = 'name')][position() &gt; 1]">
5887
+ <xsl:with-param name="fo_element" select="'block'"/>
5888
+ </xsl:apply-templates>
5889
+ </fo:block-container>
5890
+ </fo:block-container>
5891
+ </xsl:if>
5892
+ </xsl:otherwise> <!-- end inline -->
5893
+
5894
+ </xsl:choose>
5895
+ </fo:block-container>
5896
+ </fo:block-container>
5748
5897
  </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']">
5749
5898
  <xsl:param name="fo_element">block</xsl:param>
5750
5899
 
@@ -5776,10 +5925,16 @@
5776
5925
  </xsl:variable>
5777
5926
  <xsl:choose>
5778
5927
  <xsl:when test="starts-with(normalize-space($element), 'block')">
5779
- <fo:block xsl:use-attribute-sets="example-p-style">
5780
-
5781
- <xsl:apply-templates/>
5782
- </fo:block>
5928
+ <fo:block-container>
5929
+ <xsl:if test="ancestor::*[local-name() = 'li'] and contains(normalize-space($fo_element), 'block')">
5930
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
5931
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
5932
+ </xsl:if>
5933
+ <fo:block xsl:use-attribute-sets="example-p-style">
5934
+
5935
+ <xsl:apply-templates/>
5936
+ </fo:block>
5937
+ </fo:block-container>
5783
5938
  </xsl:when>
5784
5939
  <xsl:otherwise>
5785
5940
  <fo:inline xsl:use-attribute-sets="example-p-style">
@@ -5961,7 +6116,16 @@
5961
6116
  </fo:inline>
5962
6117
  </xsl:when>
5963
6118
  <xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
5964
- <fo:inline><xsl:apply-templates/></fo:inline>
6119
+
6120
+ <!-- if in bibitem[@hidden='true'] there is url[@type='src'], then create hyperlink -->
6121
+ <xsl:variable name="uri_src" select="normalize-space($bibitems_hidden/*[local-name() ='bibitem'][@id = $current_bibitemid]/*[local-name() = 'uri'][@type = 'src'])"/>
6122
+ <xsl:choose>
6123
+ <xsl:when test="$uri_src != ''">
6124
+ <fo:basic-link external-destination="{$uri_src}" fox:alt-text="{$uri_src}"><xsl:apply-templates/></fo:basic-link>
6125
+ </xsl:when>
6126
+ <xsl:otherwise><fo:inline><xsl:apply-templates/></fo:inline></xsl:otherwise>
6127
+ </xsl:choose>
6128
+
5965
6129
  </xsl:otherwise>
5966
6130
  </xsl:choose>
5967
6131
  </xsl:template><xsl:template match="*[local-name() = 'tab']">
@@ -6133,10 +6297,24 @@
6133
6297
 
6134
6298
  </fo:block>
6135
6299
  <xsl:apply-templates/>
6136
- </xsl:template><xsl:template match="*[local-name() = 'review']">
6300
+ </xsl:template><xsl:template match="*[local-name() = 'review']"> <!-- 'review' will be processed in mn2pdf/review.xsl -->
6137
6301
  <!-- comment 2019-11-29 -->
6138
6302
  <!-- <fo:block font-weight="bold">Review:</fo:block>
6139
6303
  <xsl:apply-templates /> -->
6304
+
6305
+ <xsl:variable name="id_from" select="normalize-space(current()/@from)"/>
6306
+
6307
+ <xsl:choose>
6308
+ <!-- if there isn't the attribute '@from', then -->
6309
+ <xsl:when test="$id_from = ''">
6310
+ <fo:block id="{@id}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
6311
+ </xsl:when>
6312
+ <!-- if there isn't element with id 'from', then create 'bookmark' here -->
6313
+ <xsl:when test="not(ancestor::*[contains(local-name(), '-standard')]//*[@id = $id_from])">
6314
+ <fo:block id="{@from}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
6315
+ </xsl:when>
6316
+ </xsl:choose>
6317
+
6140
6318
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
6141
6319
  <!-- 0xA0 to space replacement -->
6142
6320
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
@@ -6493,7 +6671,10 @@
6493
6671
  <!-- to split by '_' and other chars -->
6494
6672
  <xsl:call-template name="add-zero-spaces-java"/>
6495
6673
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
6496
- <fo:inline id="{@id}" font-size="1pt"/>
6674
+ <!-- <fo:inline id="{@id}" font-size="1pt"/> -->
6675
+ <fo:inline id="{@id}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:inline>
6676
+ <!-- we need to add zero-width space, otherwise this fo:inline is missing in IF xml -->
6677
+ <xsl:if test="not(following-sibling::node()[normalize-space() != ''])"> </xsl:if>
6497
6678
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
6498
6679
  <!-- <row>
6499
6680
  <date>05-07-2013</date>
@@ -7106,6 +7287,120 @@
7106
7287
  <xsl:apply-templates select="." mode="update_xml_step1"/>
7107
7288
  </xsl:for-each>
7108
7289
  </xsl:copy>
7290
+ </xsl:template><xsl:template match="*[local-name() = 'span']" mode="update_xml_step1">
7291
+ <xsl:apply-templates mode="update_xml_step1"/>
7292
+ </xsl:template><xsl:template match="@*|node()" mode="update_xml_enclose_keep-together_within-line">
7293
+ <xsl:copy>
7294
+ <xsl:apply-templates select="@*|node()" mode="update_xml_enclose_keep-together_within-line"/>
7295
+ </xsl:copy>
7296
+ </xsl:template><xsl:variable name="express_reference_separators">_.\</xsl:variable><xsl:variable name="express_reference_characters" select="concat($upper,$lower,'1234567890',$express_reference_separators)"/><xsl:variable name="element_name_keep-together_within-line">keep-together_within-line</xsl:variable><xsl:template match="text()[not(ancestor::*[local-name() = 'bibdata'] or ancestor::*[local-name() = 'sourcecode'] or ancestor::*[local-name() = 'math'])]" name="keep_together_standard_number" mode="update_xml_enclose_keep-together_within-line">
7297
+
7298
+ <!-- enclose standard's number into tag 'keep-together_within-line' -->
7299
+ <xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
7300
+ <xsl:variable name="tag_keep-together_within-line_open">###<xsl:value-of select="$element_name_keep-together_within-line"/>###</xsl:variable>
7301
+ <xsl:variable name="tag_keep-together_within-line_close">###/<xsl:value-of select="$element_name_keep-together_within-line"/>###</xsl:variable>
7302
+ <xsl:variable name="text_" select="java:replaceAll(java:java.lang.String.new(.),$regex_standard_reference,concat($tag_keep-together_within-line_open,'$1',$tag_keep-together_within-line_close))"/>
7303
+ <xsl:variable name="text"><text><xsl:call-template name="replace_text_tags">
7304
+ <xsl:with-param name="tag_open" select="$tag_keep-together_within-line_open"/>
7305
+ <xsl:with-param name="tag_close" select="$tag_keep-together_within-line_close"/>
7306
+ <xsl:with-param name="text" select="$text_"/>
7307
+ </xsl:call-template></text></xsl:variable>
7308
+
7309
+ <xsl:variable name="parent" select="local-name(..)"/>
7310
+
7311
+ <xsl:variable name="text2">
7312
+ <text><xsl:for-each select="xalan:nodeset($text)/text/node()">
7313
+ <xsl:copy-of select="."/>
7314
+ </xsl:for-each></text>
7315
+ </xsl:variable>
7316
+
7317
+ <!-- keep-together_within-line for: a/b, aaa/b, a/bbb, /b -->
7318
+ <xsl:variable name="regex_solidus_units">((\b((\S{1,3}\/\S+)|(\S+\/\S{1,3}))\b)|(\/\S{1,3})\b)</xsl:variable>
7319
+ <xsl:variable name="text3">
7320
+ <text><xsl:for-each select="xalan:nodeset($text2)/text/node()">
7321
+ <xsl:choose>
7322
+ <xsl:when test="self::text()">
7323
+ <xsl:variable name="text_units_" select="java:replaceAll(java:java.lang.String.new(.),$regex_solidus_units,concat($tag_keep-together_within-line_open,'$1',$tag_keep-together_within-line_close))"/>
7324
+ <xsl:variable name="text_units"><text><xsl:call-template name="replace_text_tags">
7325
+ <xsl:with-param name="tag_open" select="$tag_keep-together_within-line_open"/>
7326
+ <xsl:with-param name="tag_close" select="$tag_keep-together_within-line_close"/>
7327
+ <xsl:with-param name="text" select="$text_units_"/>
7328
+ </xsl:call-template></text></xsl:variable>
7329
+ <xsl:copy-of select="xalan:nodeset($text_units)/text/node()"/>
7330
+ </xsl:when>
7331
+ <xsl:otherwise><xsl:copy-of select="."/></xsl:otherwise> <!-- copy 'as-is' for <fo:inline keep-together.within-line="always" ... -->
7332
+ </xsl:choose>
7333
+ </xsl:for-each></text>
7334
+ </xsl:variable>
7335
+
7336
+ <xsl:choose>
7337
+ <xsl:when test="ancestor::*[local-name() = 'td' or local-name() = 'th']">
7338
+ <!-- keep-together_within-line for: a.b, aaa.b, a.bbb, .b in table's cell ONLY -->
7339
+ <xsl:variable name="regex_dots_units">((\b((\S{1,3}\.\S+)|(\S+\.\S{1,3}))\b)|(\.\S{1,3})\b)</xsl:variable>
7340
+ <xsl:for-each select="xalan:nodeset($text3)/text/node()">
7341
+ <xsl:choose>
7342
+ <xsl:when test="self::text()">
7343
+ <xsl:variable name="text_dots_" select="java:replaceAll(java:java.lang.String.new(.),$regex_dots_units,concat($tag_keep-together_within-line_open,'$1',$tag_keep-together_within-line_close))"/>
7344
+ <xsl:variable name="text_dots"><text><xsl:call-template name="replace_text_tags">
7345
+ <xsl:with-param name="tag_open" select="$tag_keep-together_within-line_open"/>
7346
+ <xsl:with-param name="tag_close" select="$tag_keep-together_within-line_close"/>
7347
+ <xsl:with-param name="text" select="$text_dots_"/>
7348
+ </xsl:call-template></text></xsl:variable>
7349
+ <xsl:copy-of select="xalan:nodeset($text_dots)/text/node()"/>
7350
+ </xsl:when>
7351
+ <xsl:otherwise><xsl:copy-of select="."/></xsl:otherwise> <!-- copy 'as-is' for <fo:inline keep-together.within-line="always" ... -->
7352
+ </xsl:choose>
7353
+ </xsl:for-each>
7354
+ </xsl:when>
7355
+ <xsl:otherwise><xsl:copy-of select="xalan:nodeset($text3)/text/node()"/></xsl:otherwise>
7356
+ </xsl:choose>
7357
+
7358
+ </xsl:template><xsl:template name="replace_text_tags">
7359
+ <xsl:param name="tag_open"/>
7360
+ <xsl:param name="tag_close"/>
7361
+ <xsl:param name="text"/>
7362
+ <xsl:choose>
7363
+ <xsl:when test="contains($text, $tag_open)">
7364
+ <xsl:value-of select="substring-before($text, $tag_open)"/>
7365
+ <xsl:variable name="text_after" select="substring-after($text, $tag_open)"/>
7366
+
7367
+ <xsl:element name="{substring-before(substring-after($tag_open, '###'),'###')}">
7368
+ <xsl:value-of select="substring-before($text_after, $tag_close)"/>
7369
+ </xsl:element>
7370
+
7371
+ <xsl:call-template name="replace_text_tags">
7372
+ <xsl:with-param name="tag_open" select="$tag_open"/>
7373
+ <xsl:with-param name="tag_close" select="$tag_close"/>
7374
+ <xsl:with-param name="text" select="substring-after($text_after, $tag_close)"/>
7375
+ </xsl:call-template>
7376
+ </xsl:when>
7377
+ <xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise>
7378
+ </xsl:choose>
7379
+ </xsl:template><xsl:template name="printEdition">
7380
+ <xsl:variable name="edition_i18n" select="normalize-space((//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']/*[local-name() = 'edition'][normalize-space(@language) != ''])"/>
7381
+ <xsl:text> </xsl:text>
7382
+ <xsl:choose>
7383
+ <xsl:when test="$edition_i18n != ''">
7384
+ <!-- Example: <edition language="fr">deuxième édition</edition> -->
7385
+ <xsl:call-template name="capitalize">
7386
+ <xsl:with-param name="str" select="$edition_i18n"/>
7387
+ </xsl:call-template>
7388
+ </xsl:when>
7389
+ <xsl:otherwise>
7390
+ <xsl:variable name="edition" select="normalize-space((//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']/*[local-name() = 'edition'])"/>
7391
+ <xsl:if test="$edition != ''"> <!-- Example: 1.3 -->
7392
+ <xsl:call-template name="capitalize">
7393
+ <xsl:with-param name="str">
7394
+ <xsl:call-template name="getLocalizedString">
7395
+ <xsl:with-param name="key">edition</xsl:with-param>
7396
+ </xsl:call-template>
7397
+ </xsl:with-param>
7398
+ </xsl:call-template>
7399
+ <xsl:text> </xsl:text>
7400
+ <xsl:value-of select="$edition"/>
7401
+ </xsl:if>
7402
+ </xsl:otherwise>
7403
+ </xsl:choose>
7109
7404
  </xsl:template><xsl:template name="convertDate">
7110
7405
  <xsl:param name="date"/>
7111
7406
  <xsl:param name="format" select="'short'"/>