metanorma-m3aawg 2.2.4 → 2.2.5
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/m3aawg/html/htmlstyle.css +4 -0
- data/lib/isodoc/m3aawg/m3aawg.policy.xsl +275 -100
- data/lib/isodoc/m3aawg/m3aawg.report.xsl +275 -100
- data/lib/metanorma/m3aawg/isodoc.rng +46 -296
- data/lib/metanorma/m3aawg/version.rb +1 -1
- data/metanorma-m3aawg.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb467d3752e66cbba06e6fca969a8ad9cad902b3d6894e42b5e08799d65e80bc
|
4
|
+
data.tar.gz: 1f2874f3b99cd421a73d33858c75f7a966a37a2316b32f8cd922cac18a855207
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f57920c00fa68d7a4d05db36ace7aa5078b7ef72ad20d104f20475cbd477ab1537e926c0eb7e04cfdfe436f8a534996bbbe1e6ea2ab95bb2e9c1690325b0fcbb
|
7
|
+
data.tar.gz: f1584b33ec203cc1a010df63b1db34e409f0a2608111a9bc35d6228e5cf272d6785b1969b2574cdd50a6de9aedc5e021b0e48b15cab6871a1e0f93e103f347be
|
@@ -1222,7 +1222,6 @@
|
|
1222
1222
|
|
1223
1223
|
<xsl:attribute-set name="table-header-cell-style">
|
1224
1224
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
1225
|
-
<xsl:attribute name="border">solid black 1pt</xsl:attribute>
|
1226
1225
|
<xsl:attribute name="padding-left">1mm</xsl:attribute>
|
1227
1226
|
<xsl:attribute name="padding-right">1mm</xsl:attribute>
|
1228
1227
|
<xsl:attribute name="display-align">center</xsl:attribute>
|
@@ -1231,7 +1230,6 @@
|
|
1231
1230
|
|
1232
1231
|
<xsl:attribute-set name="table-cell-style">
|
1233
1232
|
<xsl:attribute name="display-align">center</xsl:attribute>
|
1234
|
-
<xsl:attribute name="border">solid black 1pt</xsl:attribute>
|
1235
1233
|
<xsl:attribute name="padding-left">1mm</xsl:attribute>
|
1236
1234
|
<xsl:attribute name="padding-right">1mm</xsl:attribute>
|
1237
1235
|
|
@@ -1957,7 +1955,7 @@
|
|
1957
1955
|
<xsl:apply-templates select="." mode="contents"/>
|
1958
1956
|
</xsl:for-each>
|
1959
1957
|
|
1960
|
-
<xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true') and not(*[local-name()='references'][@normative='true'])] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
|
1958
|
+
<xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true') and not(*[local-name()='references'][@normative='true'])][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) > 0] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) > 0]">
|
1961
1959
|
<xsl:sort select="@displayorder" data-type="number"/>
|
1962
1960
|
<xsl:apply-templates select="." mode="contents"/>
|
1963
1961
|
</xsl:for-each>
|
@@ -2899,6 +2897,10 @@
|
|
2899
2897
|
</xsl:choose>
|
2900
2898
|
</xsl:variable>
|
2901
2899
|
|
2900
|
+
<xsl:variable name="table_fn_block">
|
2901
|
+
<xsl:call-template name="table_fn_display"/>
|
2902
|
+
</xsl:variable>
|
2903
|
+
|
2902
2904
|
<xsl:variable name="tableWithNotesAndFootnotes">
|
2903
2905
|
|
2904
2906
|
<fo:table keep-with-previous="always">
|
@@ -2946,11 +2948,25 @@
|
|
2946
2948
|
|
2947
2949
|
<xsl:apply-templates select="../*[local-name()='note']"/>
|
2948
2950
|
|
2951
|
+
<xsl:variable name="isDisplayRowSeparator">
|
2952
|
+
|
2953
|
+
</xsl:variable>
|
2954
|
+
|
2949
2955
|
<!-- horizontal row separator -->
|
2956
|
+
<xsl:if test="normalize-space($isDisplayRowSeparator) = 'true'">
|
2957
|
+
<xsl:if test="../*[local-name()='note'] and normalize-space($table_fn_block) != ''">
|
2958
|
+
<fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
|
2959
|
+
|
2960
|
+
<xsl:call-template name="setBordersTableArray"/>
|
2961
|
+
<fo:block font-size="1pt"> </fo:block>
|
2962
|
+
</fo:block-container>
|
2963
|
+
</xsl:if>
|
2964
|
+
</xsl:if>
|
2950
2965
|
|
2951
2966
|
<!-- fn processing -->
|
2952
2967
|
|
2953
|
-
<xsl:call-template name="table_fn_display"/>
|
2968
|
+
<!-- <xsl:call-template name="table_fn_display" /> -->
|
2969
|
+
<xsl:copy-of select="$table_fn_block"/>
|
2954
2970
|
|
2955
2971
|
<!-- for PAS display Notes after footnotes -->
|
2956
2972
|
|
@@ -3067,6 +3083,28 @@
|
|
3067
3083
|
</fo:table-row>
|
3068
3084
|
</xsl:template>
|
3069
3085
|
|
3086
|
+
<xsl:template name="setBorderUnderRow">
|
3087
|
+
<xsl:variable name="border_under_row_" select="normalize-space(ancestor::*[local-name() = 'table'][1]/@border-under-row)"/>
|
3088
|
+
<xsl:choose>
|
3089
|
+
<xsl:when test="$border_under_row_ != ''">
|
3090
|
+
<xsl:variable name="table_id" select="ancestor::*[local-name() = 'table'][1]/@id"/>
|
3091
|
+
<xsl:variable name="row_num_"><xsl:number level="any" count="*[local-name() = 'table'][@id = $table_id]//*[local-name() = 'tr']"/></xsl:variable>
|
3092
|
+
<xsl:variable name="row_num" select="number($row_num_) - 1"/> <!-- because values in border-under-row start with 0 -->
|
3093
|
+
<xsl:variable name="border_under_row">
|
3094
|
+
<xsl:call-template name="split">
|
3095
|
+
<xsl:with-param name="pText" select="$border_under_row_"/>
|
3096
|
+
</xsl:call-template>
|
3097
|
+
</xsl:variable>
|
3098
|
+
<xsl:if test="xalan:nodeset($border_under_row)/item[. = normalize-space($row_num)]">
|
3099
|
+
<xsl:attribute name="border-bottom"><xsl:value-of select="$table-border"/></xsl:attribute>
|
3100
|
+
</xsl:if>
|
3101
|
+
</xsl:when>
|
3102
|
+
<xsl:otherwise>
|
3103
|
+
<xsl:attribute name="border-bottom"><xsl:value-of select="$table-border"/></xsl:attribute>
|
3104
|
+
</xsl:otherwise>
|
3105
|
+
</xsl:choose>
|
3106
|
+
</xsl:template>
|
3107
|
+
|
3070
3108
|
<!-- row in table footer (tfoot) -->
|
3071
3109
|
<xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
|
3072
3110
|
<fo:table-row xsl:use-attribute-sets="table-footer-row-style">
|
@@ -3395,8 +3433,16 @@
|
|
3395
3433
|
<!-- figure's footnotes rendering -->
|
3396
3434
|
<xsl:template name="fn_display_figure">
|
3397
3435
|
|
3436
|
+
<!-- current figure id -->
|
3437
|
+
<xsl:variable name="figure_id_">
|
3438
|
+
<xsl:value-of select="@id"/>
|
3439
|
+
<xsl:if test="not(@id)"><xsl:value-of select="generate-id()"/></xsl:if>
|
3440
|
+
</xsl:variable>
|
3441
|
+
<xsl:variable name="figure_id" select="normalize-space($figure_id_)"/>
|
3442
|
+
|
3443
|
+
<!-- all footnotes relates to the current figure -->
|
3398
3444
|
<xsl:variable name="references">
|
3399
|
-
<xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
|
3445
|
+
<xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])][ancestor::*[local-name() = 'figure'][1][@id = $figure_id]]">
|
3400
3446
|
<fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
|
3401
3447
|
<xsl:apply-templates/>
|
3402
3448
|
</fn>
|
@@ -3409,91 +3455,93 @@
|
|
3409
3455
|
|
3410
3456
|
</xsl:variable>
|
3411
3457
|
|
3412
|
-
|
3413
|
-
|
3414
|
-
|
3415
|
-
|
3416
|
-
|
3417
|
-
|
3458
|
+
<fo:block>
|
3459
|
+
|
3460
|
+
<!-- current hierarchy is 'figure' element -->
|
3461
|
+
<xsl:variable name="following_dl_colwidths">
|
3462
|
+
<xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
|
3463
|
+
<xsl:variable name="simple-table">
|
3464
|
+
<!-- <xsl:variable name="doc_ns">
|
3465
|
+
<xsl:if test="$namespace = 'bipm'">bipm</xsl:if>
|
3466
|
+
</xsl:variable>
|
3467
|
+
<xsl:variable name="ns">
|
3468
|
+
<xsl:choose>
|
3469
|
+
<xsl:when test="normalize-space($doc_ns) != ''">
|
3470
|
+
<xsl:value-of select="normalize-space($doc_ns)"/>
|
3471
|
+
</xsl:when>
|
3472
|
+
<xsl:otherwise>
|
3473
|
+
<xsl:value-of select="substring-before(name(/*), '-')"/>
|
3474
|
+
</xsl:otherwise>
|
3475
|
+
</xsl:choose>
|
3476
|
+
</xsl:variable> -->
|
3477
|
+
|
3478
|
+
<xsl:for-each select="*[local-name() = 'dl'][1]">
|
3479
|
+
<tbody>
|
3480
|
+
<xsl:apply-templates mode="dl"/>
|
3481
|
+
</tbody>
|
3482
|
+
</xsl:for-each>
|
3483
|
+
</xsl:variable>
|
3484
|
+
|
3485
|
+
<xsl:call-template name="calculate-column-widths">
|
3486
|
+
<xsl:with-param name="cols-count" select="2"/>
|
3487
|
+
<xsl:with-param name="table" select="$simple-table"/>
|
3488
|
+
</xsl:call-template>
|
3489
|
+
|
3490
|
+
</xsl:if>
|
3418
3491
|
</xsl:variable>
|
3419
|
-
|
3492
|
+
|
3493
|
+
<xsl:variable name="maxlength_dt">
|
3494
|
+
<xsl:for-each select="*[local-name() = 'dl'][1]">
|
3495
|
+
<xsl:call-template name="getMaxLength_dt"/>
|
3496
|
+
</xsl:for-each>
|
3497
|
+
</xsl:variable>
|
3498
|
+
|
3499
|
+
<fo:table width="95%" table-layout="fixed">
|
3500
|
+
<xsl:if test="normalize-space($key_iso) = 'true'">
|
3501
|
+
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
3502
|
+
|
3503
|
+
</xsl:if>
|
3420
3504
|
<xsl:choose>
|
3421
|
-
|
3422
|
-
|
3505
|
+
<!-- if there 'dl', then set same columns width -->
|
3506
|
+
<xsl:when test="xalan:nodeset($following_dl_colwidths)//column">
|
3507
|
+
<xsl:call-template name="setColumnWidth_dl">
|
3508
|
+
<xsl:with-param name="colwidths" select="$following_dl_colwidths"/>
|
3509
|
+
<xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
|
3510
|
+
</xsl:call-template>
|
3423
3511
|
</xsl:when>
|
3424
3512
|
<xsl:otherwise>
|
3425
|
-
<
|
3513
|
+
<fo:table-column column-width="5%"/>
|
3514
|
+
<fo:table-column column-width="95%"/>
|
3426
3515
|
</xsl:otherwise>
|
3427
3516
|
</xsl:choose>
|
3428
|
-
|
3429
|
-
|
3430
|
-
|
3431
|
-
|
3432
|
-
|
3433
|
-
|
3434
|
-
|
3435
|
-
|
3436
|
-
|
3437
|
-
|
3438
|
-
|
3439
|
-
|
3440
|
-
|
3441
|
-
|
3442
|
-
|
3443
|
-
</xsl:variable>
|
3444
|
-
|
3445
|
-
<xsl:variable name="maxlength_dt">
|
3446
|
-
<xsl:for-each select="*[local-name() = 'dl'][1]">
|
3447
|
-
<xsl:call-template name="getMaxLength_dt"/>
|
3448
|
-
</xsl:for-each>
|
3449
|
-
</xsl:variable>
|
3450
|
-
|
3451
|
-
<fo:block>
|
3452
|
-
<fo:table width="95%" table-layout="fixed">
|
3453
|
-
<xsl:if test="normalize-space($key_iso) = 'true'">
|
3454
|
-
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
3517
|
+
<fo:table-body>
|
3518
|
+
<xsl:for-each select="xalan:nodeset($references)//fn">
|
3519
|
+
<xsl:variable name="reference" select="@reference"/>
|
3520
|
+
<xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
|
3521
|
+
<fo:table-row>
|
3522
|
+
<fo:table-cell>
|
3523
|
+
<fo:block>
|
3524
|
+
<fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
|
3525
|
+
<xsl:value-of select="@reference"/>
|
3526
|
+
</fo:inline>
|
3527
|
+
</fo:block>
|
3528
|
+
</fo:table-cell>
|
3529
|
+
<fo:table-cell>
|
3530
|
+
<fo:block xsl:use-attribute-sets="figure-fn-body-style">
|
3531
|
+
<xsl:if test="normalize-space($key_iso) = 'true'">
|
3455
3532
|
|
3456
|
-
|
3457
|
-
<xsl:choose>
|
3458
|
-
<!-- if there 'dl', then set same columns width -->
|
3459
|
-
<xsl:when test="xalan:nodeset($following_dl_colwidths)//column">
|
3460
|
-
<xsl:call-template name="setColumnWidth_dl">
|
3461
|
-
<xsl:with-param name="colwidths" select="$following_dl_colwidths"/>
|
3462
|
-
<xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
|
3463
|
-
</xsl:call-template>
|
3464
|
-
</xsl:when>
|
3465
|
-
<xsl:otherwise>
|
3466
|
-
<fo:table-column column-width="15%"/>
|
3467
|
-
<fo:table-column column-width="85%"/>
|
3468
|
-
</xsl:otherwise>
|
3469
|
-
</xsl:choose>
|
3470
|
-
<fo:table-body>
|
3471
|
-
<xsl:for-each select="xalan:nodeset($references)//fn">
|
3472
|
-
<xsl:variable name="reference" select="@reference"/>
|
3473
|
-
<xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
|
3474
|
-
<fo:table-row>
|
3475
|
-
<fo:table-cell>
|
3476
|
-
<fo:block>
|
3477
|
-
<fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
|
3478
|
-
<xsl:value-of select="@reference"/>
|
3479
|
-
</fo:inline>
|
3480
|
-
</fo:block>
|
3481
|
-
</fo:table-cell>
|
3482
|
-
<fo:table-cell>
|
3483
|
-
<fo:block xsl:use-attribute-sets="figure-fn-body-style">
|
3484
|
-
<xsl:if test="normalize-space($key_iso) = 'true'">
|
3533
|
+
<xsl:attribute name="margin-bottom">0</xsl:attribute>
|
3485
3534
|
|
3486
|
-
|
3535
|
+
</xsl:if>
|
3536
|
+
<xsl:copy-of select="./node()"/>
|
3537
|
+
</fo:block>
|
3538
|
+
</fo:table-cell>
|
3539
|
+
</fo:table-row>
|
3540
|
+
</xsl:if>
|
3541
|
+
</xsl:for-each>
|
3542
|
+
</fo:table-body>
|
3543
|
+
</fo:table>
|
3487
3544
|
|
3488
|
-
</xsl:if>
|
3489
|
-
<xsl:copy-of select="./node()"/>
|
3490
|
-
</fo:block>
|
3491
|
-
</fo:table-cell>
|
3492
|
-
</fo:table-row>
|
3493
|
-
</xsl:if>
|
3494
|
-
</xsl:for-each>
|
3495
|
-
</fo:table-body>
|
3496
|
-
</fo:table>
|
3497
3545
|
</fo:block>
|
3498
3546
|
</xsl:if>
|
3499
3547
|
|
@@ -3569,12 +3617,14 @@
|
|
3569
3617
|
|
3570
3618
|
<fo:block margin-bottom="12pt" text-align="left">
|
3571
3619
|
|
3572
|
-
<xsl:variable name="title-where">
|
3620
|
+
<!-- <xsl:variable name="title-where">
|
3573
3621
|
<xsl:call-template name="getLocalizedString">
|
3574
3622
|
<xsl:with-param name="key">where</xsl:with-param>
|
3575
3623
|
</xsl:call-template>
|
3576
3624
|
</xsl:variable>
|
3577
|
-
<xsl:value-of select="$title-where"
|
3625
|
+
<xsl:value-of select="$title-where"/> -->
|
3626
|
+
<xsl:apply-templates select="preceding-sibling::*[1][local-name() = 'p' and @keep-with-next = 'true']/node()"/>
|
3627
|
+
<xsl:text> </xsl:text>
|
3578
3628
|
<xsl:apply-templates select="*[local-name()='dt']/*"/>
|
3579
3629
|
<xsl:text/>
|
3580
3630
|
<xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
|
@@ -3584,12 +3634,14 @@
|
|
3584
3634
|
<xsl:when test="$parent = 'formula'"> <!-- a few components -->
|
3585
3635
|
<fo:block margin-bottom="12pt" text-align="left">
|
3586
3636
|
|
3587
|
-
<xsl:variable name="title-where">
|
3637
|
+
<!-- <xsl:variable name="title-where">
|
3588
3638
|
<xsl:call-template name="getLocalizedString">
|
3589
3639
|
<xsl:with-param name="key">where</xsl:with-param>
|
3590
3640
|
</xsl:call-template>
|
3591
3641
|
</xsl:variable>
|
3592
|
-
<xsl:value-of select="$title-where"
|
3642
|
+
<xsl:value-of select="$title-where"/><xsl:if test="$namespace = 'bsi' or $namespace = 'itu'">:</xsl:if> -->
|
3643
|
+
<!-- preceding 'p' with word 'where' -->
|
3644
|
+
<xsl:apply-templates select="preceding-sibling::*[1][local-name() = 'p' and @keep-with-next = 'true']/node()"/>
|
3593
3645
|
</fo:block>
|
3594
3646
|
</xsl:when> <!-- END: a few components -->
|
3595
3647
|
<xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')"> <!-- definition list in a figure -->
|
@@ -3772,6 +3824,9 @@
|
|
3772
3824
|
|
3773
3825
|
</xsl:template> <!-- END: dl -->
|
3774
3826
|
|
3827
|
+
<!-- ignore 'p' with 'where' in formula, before 'dl' -->
|
3828
|
+
<xsl:template match="*[local-name() = 'formula']/*[local-name() = 'p' and @keep-with-next = 'true' and following-sibling::*[1][local-name() = 'dl']]"/>
|
3829
|
+
|
3775
3830
|
<xsl:template match="*[local-name() = 'dl']/*[local-name() = 'name']">
|
3776
3831
|
<xsl:param name="process">false</xsl:param>
|
3777
3832
|
<xsl:if test="$process = 'true'">
|
@@ -4604,8 +4659,8 @@
|
|
4604
4659
|
|
4605
4660
|
<!-- add zero-width space (#x200B) after dot with next non-digit -->
|
4606
4661
|
<xsl:variable name="text1" select="java:replaceAll(java:java.lang.String.new($text),'(\.)([^\d\s])','$1$2')"/>
|
4607
|
-
<!-- add zero-width space (#x200B) after characters: dash, equal, underscore, em dash, thin space, arrow right -->
|
4608
|
-
<xsl:variable name="text2" select="java:replaceAll(java:java.lang.String.new($text1),'(-|=|_|—|
|
4662
|
+
<!-- add zero-width space (#x200B) after characters: dash, equal, underscore, em dash, thin space, arrow right, ; -->
|
4663
|
+
<xsl:variable name="text2" select="java:replaceAll(java:java.lang.String.new($text1),'(-|=|_|—| |→|;)','$1')"/>
|
4609
4664
|
<!-- add zero-width space (#x200B) after characters: colon, if there aren't digits after -->
|
4610
4665
|
<xsl:variable name="text3" select="java:replaceAll(java:java.lang.String.new($text2),'(:)(\D)','$1$2')"/>
|
4611
4666
|
<!-- add zero-width space (#x200B) after characters: 'great than' -->
|
@@ -4616,8 +4671,19 @@
|
|
4616
4671
|
<xsl:variable name="text6" select="java:replaceAll(java:java.lang.String.new($text5), '(?<!\W)(\{)', '$1')"/> <!-- negative lookbehind: '{' not preceeded by 'punctuation char' -->
|
4617
4672
|
<!-- add zero-width space (#x200B) after character: , -->
|
4618
4673
|
<xsl:variable name="text7" select="java:replaceAll(java:java.lang.String.new($text6), '(\,)(?!\d)', '$1')"/> <!-- negative lookahead: ',' not followed by digit -->
|
4674
|
+
<!-- add zero-width space (#x200B) after character: '/' -->
|
4675
|
+
<xsl:variable name="text8" select="java:replaceAll(java:java.lang.String.new($text7), '(\u002f)(?!\u002f)', '$1')"/><!-- negative lookahead: '/' not followed by '/' -->
|
4676
|
+
|
4677
|
+
<xsl:variable name="text9">
|
4678
|
+
<xsl:choose>
|
4679
|
+
<xsl:when test="$isGenerateTableIF = 'true'">
|
4680
|
+
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($text8), '([\u3000-\u9FFF])', '$1')"/> <!-- 3000 - CJK Symbols and Punctuation ... 9FFF CJK Unified Ideographs-->
|
4681
|
+
</xsl:when>
|
4682
|
+
<xsl:otherwise><xsl:value-of select="$text8"/></xsl:otherwise>
|
4683
|
+
</xsl:choose>
|
4684
|
+
</xsl:variable>
|
4619
4685
|
|
4620
|
-
<xsl:value-of select="$
|
4686
|
+
<xsl:value-of select="$text9"/>
|
4621
4687
|
</xsl:template>
|
4622
4688
|
|
4623
4689
|
<xsl:template name="add-zero-spaces-link-java">
|
@@ -4625,8 +4691,8 @@
|
|
4625
4691
|
|
4626
4692
|
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($text), $regex_url_start, '$1')"/> <!-- http://. https:// or www. -->
|
4627
4693
|
<xsl:variable name="url_continue" select="java:replaceAll(java:java.lang.String.new($text), $regex_url_start, '$2')"/>
|
4628
|
-
<!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
|
4629
|
-
<xsl:variable name="url" select="java:replaceAll(java:java.lang.String.new($url_continue),'(-|\.|:|=|_|—|
|
4694
|
+
<!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space, comma, slash, @ -->
|
4695
|
+
<xsl:variable name="url" select="java:replaceAll(java:java.lang.String.new($url_continue),'(-|\.|:|=|_|—| |,|/|@)','$1')"/>
|
4630
4696
|
<!-- remove zero-width space at the end -->
|
4631
4697
|
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($url), '$', '')"/>
|
4632
4698
|
</xsl:template>
|
@@ -4981,9 +5047,28 @@
|
|
4981
5047
|
</xsl:variable>
|
4982
5048
|
<xsl:copy-of select="$newRow"/>
|
4983
5049
|
|
4984
|
-
|
4985
|
-
|
4986
|
-
|
5050
|
+
<!-- optimize to prevent StackOverflowError, just copy next 'tr' -->
|
5051
|
+
<xsl:variable name="currrow_num" select="count(preceding-sibling::tr) + 1"/>
|
5052
|
+
<xsl:variable name="nextrow_without_rowspan_" select="count(following-sibling::tr[*[@rowspan and @rowspan != 1]][1]/preceding-sibling::tr) + 1"/>
|
5053
|
+
<xsl:variable name="nextrow_without_rowspan" select="$nextrow_without_rowspan_ - $currrow_num"/>
|
5054
|
+
<xsl:choose>
|
5055
|
+
<xsl:when test="not(xalan:nodeset($newRow)/*/*[@rowspan and @rowspan != 1]) and $nextrow_without_rowspan <= 0">
|
5056
|
+
<xsl:copy-of select="following-sibling::tr"/>
|
5057
|
+
</xsl:when>
|
5058
|
+
<!-- <xsl:when test="xalan:nodeset($newRow)/*[not(@rowspan) or (@rowspan = 1)] and $nextrow_without_rowspan > 0">
|
5059
|
+
<xsl:copy-of select="following-sibling::tr[position() <= $nextrow_without_rowspan]"/>
|
5060
|
+
|
5061
|
+
<xsl:copy-of select="following-sibling::tr[$nextrow_without_rowspan + 1]"/>
|
5062
|
+
<xsl:apply-templates select="following-sibling::tr[$nextrow_without_rowspan + 2]" mode="simple-table-rowspan">
|
5063
|
+
<xsl:with-param name="previousRow" select="following-sibling::tr[$nextrow_without_rowspan + 1]"/>
|
5064
|
+
</xsl:apply-templates>
|
5065
|
+
</xsl:when> -->
|
5066
|
+
<xsl:otherwise>
|
5067
|
+
<xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
|
5068
|
+
<xsl:with-param name="previousRow" select="$newRow"/>
|
5069
|
+
</xsl:apply-templates>
|
5070
|
+
</xsl:otherwise>
|
5071
|
+
</xsl:choose>
|
4987
5072
|
</xsl:template>
|
4988
5073
|
<!-- End mode simple-table-rowspan -->
|
4989
5074
|
|
@@ -5146,6 +5231,27 @@
|
|
5146
5231
|
</xsl:call-template>
|
5147
5232
|
</xsl:template>
|
5148
5233
|
|
5234
|
+
<xsl:template match="*[local-name() = 'link'][normalize-space() = '']" mode="td_text_with_formatting">
|
5235
|
+
<xsl:variable name="link">
|
5236
|
+
<link_updated>
|
5237
|
+
<xsl:variable name="target_text">
|
5238
|
+
<xsl:choose>
|
5239
|
+
<xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
|
5240
|
+
<xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
|
5241
|
+
</xsl:when>
|
5242
|
+
<xsl:otherwise>
|
5243
|
+
<xsl:value-of select="normalize-space(@target)"/>
|
5244
|
+
</xsl:otherwise>
|
5245
|
+
</xsl:choose>
|
5246
|
+
</xsl:variable>
|
5247
|
+
<xsl:value-of select="$target_text"/>
|
5248
|
+
</link_updated>
|
5249
|
+
</xsl:variable>
|
5250
|
+
<xsl:for-each select="xalan:nodeset($link)/*">
|
5251
|
+
<xsl:apply-templates mode="td_text_with_formatting"/>
|
5252
|
+
</xsl:for-each>
|
5253
|
+
</xsl:template>
|
5254
|
+
|
5149
5255
|
<xsl:template name="getFormattingTags">
|
5150
5256
|
<tags>
|
5151
5257
|
<xsl:if test="ancestor::*[local-name() = 'strong']"><tag>strong</tag></xsl:if>
|
@@ -5487,7 +5593,7 @@
|
|
5487
5593
|
</xsl:variable>
|
5488
5594
|
<fo:inline xsl:use-attribute-sets="link-style">
|
5489
5595
|
|
5490
|
-
<xsl:if test="starts-with(normalize-space(@target), 'mailto:')">
|
5596
|
+
<xsl:if test="starts-with(normalize-space(@target), 'mailto:') and not(ancestor::*[local-name() = 'td'])">
|
5491
5597
|
<xsl:attribute name="keep-together.within-line">always</xsl:attribute>
|
5492
5598
|
</xsl:if>
|
5493
5599
|
|
@@ -5848,10 +5954,10 @@
|
|
5848
5954
|
<fo:block xsl:use-attribute-sets="figure-style">
|
5849
5955
|
<xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note' and @type = 'units')]"/>
|
5850
5956
|
</fo:block>
|
5851
|
-
<xsl:call-template name="fn_display_figure"/>
|
5852
5957
|
<xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
|
5853
5958
|
<xsl:call-template name="note"/>
|
5854
5959
|
</xsl:for-each>
|
5960
|
+
<xsl:call-template name="fn_display_figure"/>
|
5855
5961
|
|
5856
5962
|
<xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
|
5857
5963
|
|
@@ -5914,7 +6020,13 @@
|
|
5914
6020
|
</xsl:choose>
|
5915
6021
|
</xsl:variable>
|
5916
6022
|
|
5917
|
-
<xsl:variable name="
|
6023
|
+
<xsl:variable name="image_width_effective">
|
6024
|
+
|
6025
|
+
<xsl:value-of select="$width_effective"/>
|
6026
|
+
|
6027
|
+
</xsl:variable>
|
6028
|
+
|
6029
|
+
<xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
|
5918
6030
|
<xsl:if test="number($scale) < 100">
|
5919
6031
|
|
5920
6032
|
<xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
|
@@ -6501,6 +6613,13 @@
|
|
6501
6613
|
<xsl:when test="$contents_nodes/doc">
|
6502
6614
|
<xsl:choose>
|
6503
6615
|
<xsl:when test="count($contents_nodes/doc) > 1">
|
6616
|
+
|
6617
|
+
<xsl:if test="$contents_nodes/collection">
|
6618
|
+
<fo:bookmark internal-destination="{$contents/collection/@firstpage_id}">
|
6619
|
+
<fo:bookmark-title>collection.pdf</fo:bookmark-title>
|
6620
|
+
</fo:bookmark>
|
6621
|
+
</xsl:if>
|
6622
|
+
|
6504
6623
|
<xsl:for-each select="$contents_nodes/doc">
|
6505
6624
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
6506
6625
|
<xsl:if test="@bundle = 'true'">
|
@@ -8378,9 +8497,47 @@
|
|
8378
8497
|
|
8379
8498
|
<fo:list-block xsl:use-attribute-sets="list-style">
|
8380
8499
|
|
8381
|
-
|
8382
|
-
|
8500
|
+
<xsl:variable name="provisional_distance_between_starts_">
|
8501
|
+
<attributes xsl:use-attribute-sets="list-style">
|
8502
|
+
|
8503
|
+
<xsl:if test="local-name() = 'ol'">
|
8504
|
+
<xsl:attribute name="provisional-distance-between-starts">7mm</xsl:attribute>
|
8505
|
+
</xsl:if>
|
8506
|
+
|
8507
|
+
</attributes>
|
8508
|
+
</xsl:variable>
|
8509
|
+
<xsl:variable name="provisional_distance_between_starts" select="normalize-space(xalan:nodeset($provisional_distance_between_starts_)/attributes/@provisional-distance-between-starts)"/>
|
8510
|
+
<xsl:if test="$provisional_distance_between_starts != ''">
|
8511
|
+
<xsl:attribute name="provisional-distance-between-starts"><xsl:value-of select="$provisional_distance_between_starts"/></xsl:attribute>
|
8512
|
+
</xsl:if>
|
8513
|
+
<xsl:variable name="provisional_distance_between_starts_value" select="substring-before($provisional_distance_between_starts, 'mm')"/>
|
8514
|
+
|
8515
|
+
<!-- increase provisional-distance-between-starts for long lists -->
|
8516
|
+
<xsl:if test="local-name() = 'ol'">
|
8517
|
+
<!-- Examples: xiii), xviii), xxviii) -->
|
8518
|
+
<xsl:variable name="item_numbers">
|
8519
|
+
<xsl:for-each select="*[local-name() = 'li']">
|
8520
|
+
<item><xsl:call-template name="getListItemFormat"/></item>
|
8521
|
+
</xsl:for-each>
|
8522
|
+
</xsl:variable>
|
8523
|
+
|
8524
|
+
<xsl:variable name="max_length">
|
8525
|
+
<xsl:for-each select="xalan:nodeset($item_numbers)/item">
|
8526
|
+
<xsl:sort select="string-length(.)" data-type="number" order="descending"/>
|
8527
|
+
<xsl:if test="position() = 1"><xsl:value-of select="string-length(.)"/></xsl:if>
|
8528
|
+
</xsl:for-each>
|
8529
|
+
</xsl:variable>
|
8530
|
+
|
8531
|
+
<!-- base width (provisional-distance-between-starts) for 4 chars -->
|
8532
|
+
<xsl:variable name="addon" select="$max_length - 4"/>
|
8533
|
+
<xsl:if test="$addon > 0">
|
8534
|
+
<xsl:attribute name="provisional-distance-between-starts"><xsl:value-of select="$provisional_distance_between_starts_value + $addon * 2"/>mm</xsl:attribute>
|
8383
8535
|
</xsl:if>
|
8536
|
+
<!-- DEBUG -->
|
8537
|
+
<!-- <xsl:copy-of select="$item_numbers"/>
|
8538
|
+
<max_length><xsl:value-of select="$max_length"/></max_length>
|
8539
|
+
<addon><xsl:value-of select="$addon"/></addon> -->
|
8540
|
+
</xsl:if>
|
8384
8541
|
|
8385
8542
|
<xsl:if test="*[local-name() = 'name']">
|
8386
8543
|
<xsl:attribute name="margin-top">0pt</xsl:attribute>
|
@@ -9339,7 +9496,7 @@
|
|
9339
9496
|
<!-- \S matches any non-whitespace character (equivalent to [^\r\n\t\f\v ]) -->
|
9340
9497
|
<!-- <xsl:variable name="regex_solidus_units">((\b((\S{1,3}\/\S+)|(\S+\/\S{1,3}))\b)|(\/\S{1,3})\b)</xsl:variable> -->
|
9341
9498
|
<!-- add < and > to \S -->
|
9342
|
-
<xsl:variable name="regex_S">[^\r\n\t\f\v \<>
|
9499
|
+
<xsl:variable name="regex_S">[^\r\n\t\f\v \<>\u3000-\u9FFF]</xsl:variable>
|
9343
9500
|
<xsl:variable name="regex_solidus_units">((\b((<xsl:value-of select="$regex_S"/>{1,3}\/<xsl:value-of select="$regex_S"/>+)|(<xsl:value-of select="$regex_S"/>+\/<xsl:value-of select="$regex_S"/>{1,3}))\b)|(\/<xsl:value-of select="$regex_S"/>{1,3})\b)</xsl:variable>
|
9344
9501
|
<xsl:variable name="text3">
|
9345
9502
|
<text><xsl:for-each select="xalan:nodeset($text2)/text/node()">
|
@@ -9361,7 +9518,8 @@
|
|
9361
9518
|
<xsl:choose>
|
9362
9519
|
<xsl:when test="ancestor::*[local-name() = 'td' or local-name() = 'th']">
|
9363
9520
|
<!-- keep-together_within-line for: a.b, aaa.b, a.bbb, .b in table's cell ONLY -->
|
9364
|
-
<xsl:variable name="
|
9521
|
+
<xsl:variable name="non_white_space">[^\s\u3000-\u9FFF]</xsl:variable>
|
9522
|
+
<xsl:variable name="regex_dots_units">((\b((<xsl:value-of select="$non_white_space"/>{1,3}\.<xsl:value-of select="$non_white_space"/>+)|(<xsl:value-of select="$non_white_space"/>+\.<xsl:value-of select="$non_white_space"/>{1,3}))\b)|(\.<xsl:value-of select="$non_white_space"/>{1,3})\b)</xsl:variable>
|
9365
9523
|
<xsl:for-each select="xalan:nodeset($text3)/text/node()">
|
9366
9524
|
<xsl:choose>
|
9367
9525
|
<xsl:when test="self::text()">
|
@@ -9964,6 +10122,23 @@
|
|
9964
10122
|
</xsl:if>
|
9965
10123
|
</xsl:template>
|
9966
10124
|
|
10125
|
+
<xsl:template name="setBlockAttributes">
|
10126
|
+
<xsl:param name="text_align_default">left</xsl:param>
|
10127
|
+
<xsl:call-template name="setTextAlignment">
|
10128
|
+
<xsl:with-param name="default" select="$text_align_default"/>
|
10129
|
+
</xsl:call-template>
|
10130
|
+
|
10131
|
+
<!-- https://www.metanorma.org/author/topics/document-format/text/#avoiding-page-breaks -->
|
10132
|
+
<!-- Example: keep-lines-together="true" -->
|
10133
|
+
<xsl:if test="@keep-lines-together = 'true'">
|
10134
|
+
<xsl:attribute name="keep-together.within-column">always</xsl:attribute>
|
10135
|
+
</xsl:if>
|
10136
|
+
<!-- Example: keep-with-next="true" -->
|
10137
|
+
<xsl:if test="@keep-with-next = 'true'">
|
10138
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
10139
|
+
</xsl:if>
|
10140
|
+
</xsl:template>
|
10141
|
+
|
9967
10142
|
<xsl:template name="number-to-words">
|
9968
10143
|
<xsl:param name="number"/>
|
9969
10144
|
<xsl:param name="first"/>
|