metanorma-iho 0.9.5 → 0.9.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ac6b94d80ec01694cb92156d01300f4b05f795a52f8b8ac3e941114c8e804f38
4
- data.tar.gz: 89138692b96dd9f82e6362566c959f9d00fbc5a8c1e0f7e7e1f7848d830a3429
3
+ metadata.gz: 980367d23b8e5e15a1fa402561a174dc117cfded136f264f6df42c137d469ef0
4
+ data.tar.gz: 319d58da4f503c91519863780682e882e417ba304cfe920313a4f7b62a292152
5
5
  SHA512:
6
- metadata.gz: 1f6f860a2276969866f9559f573890bae77027a50c9f3e399b922e66563e50a8581f4c716659acd98a8997d4702fb2a9901eadafd26acc01921df14dd9a48754
7
- data.tar.gz: cb01939da80416546f14d86b085a7b20e7159174fa6f3b300fc1474db6b13d55b8bfde07c13b2dc3739ee37109b72abc1021045490926e42f4526a8a6da2ea9b
6
+ metadata.gz: 384862118a46f6fbab0812abd66a4e3b372906d8218ce22a3e269946c341656c1eb2c7fa91ecd07fc7425e6a2b45e7f45f0db0d26b00d3158888e5398ff00e87
7
+ data.tar.gz: 0f0c45715251c14a942add184f470cb5af3d5e7fab7888157e3674d816a8b3dc3d5a3719f73b0d4e703f5ba0d9e953031c1b8dec748a1b8191f5534db9c035ba
@@ -854,17 +854,30 @@
854
854
  <xsl:param name="add_math_as_text">true</xsl:param> <!-- add math in text behind svg formula, to copy-paste formula from PDF as text -->
855
855
 
856
856
  <xsl:param name="table_if">false</xsl:param> <!-- generate extended table in IF for autolayout-algorithm -->
857
- <xsl:param name="table_widths"/> <!-- path to xml with table's widths, generated on 1st pass, based on FOP Intermediate Format -->
857
+ <xsl:param name="table_widths"/> <!-- (debug: path to) xml with table's widths, generated on 1st pass, based on FOP Intermediate Format -->
858
858
  <!-- Example: <tables>
859
- <table id="table_if_tab-symdu" page-width="75"> - table id prefixed by 'table_if_' to simple search in IF
860
- <tbody>
861
- <tr>
862
- <td id="tab-symdu_1_1">
863
- <p_len>6</p_len>
864
- <p_len>100</p_len> for 2nd paragraph
865
- <word_len>6</word_len>
866
- <word_len>20</word_len>
867
- ...
859
+ <table page-width="509103" id="table1" width_max="223561" width_min="223560">
860
+ <column width_max="39354" width_min="39354"/>
861
+ <column width_max="75394" width_min="75394"/>
862
+ <column width_max="108813" width_min="108813"/>
863
+ <tbody>
864
+ <tr>
865
+ <td width_max="39354" width_min="39354">
866
+ <p_len>39354</p_len>
867
+ <word_len>39354</word_len>
868
+ </td>
869
+
870
+ OLD:
871
+ <tables>
872
+ <table id="table_if_tab-symdu" page-width="75"> - table id prefixed by 'table_if_' to simple search in IF
873
+ <tbody>
874
+ <tr>
875
+ <td id="tab-symdu_1_1">
876
+ <p_len>6</p_len>
877
+ <p_len>100</p_len> for 2nd paragraph
878
+ <word_len>6</word_len>
879
+ <word_len>20</word_len>
880
+ ...
868
881
  -->
869
882
 
870
883
  <!-- for command line debug: <xsl:variable name="table_widths_from_if" select="document($table_widths)"/> -->
@@ -1084,6 +1097,9 @@
1084
1097
  <xsl:variable name="hair_space"> </xsl:variable>
1085
1098
  <xsl:variable name="en_dash">–</xsl:variable>
1086
1099
  <xsl:variable name="em_dash">—</xsl:variable>
1100
+ <xsl:variable name="cr">&#13;</xsl:variable>
1101
+ <xsl:variable name="lf">
1102
+ </xsl:variable>
1087
1103
 
1088
1104
  <xsl:template name="getTitle">
1089
1105
  <xsl:param name="name"/>
@@ -2751,6 +2767,20 @@
2751
2767
  </xsl:for-each>
2752
2768
  </xsl:template>
2753
2769
 
2770
+ <xsl:param name="table_only_with_id"/><!-- Example: table1, for table auto-layout algorithm -->
2771
+
2772
+ <xsl:template match="*[local-name()='table']" priority="2">
2773
+ <xsl:choose>
2774
+ <xsl:when test="$table_only_with_id != '' and @id = $table_only_with_id">
2775
+ <xsl:call-template name="table"/>
2776
+ </xsl:when>
2777
+ <xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
2778
+ <xsl:otherwise>
2779
+ <xsl:call-template name="table"/>
2780
+ </xsl:otherwise>
2781
+ </xsl:choose>
2782
+ </xsl:template>
2783
+
2754
2784
  <xsl:template match="*[local-name()='table']" name="table">
2755
2785
 
2756
2786
  <xsl:variable name="table-preamble">
@@ -2760,9 +2790,11 @@
2760
2790
  <xsl:variable name="table">
2761
2791
 
2762
2792
  <xsl:variable name="simple-table">
2763
- <xsl:call-template name="getSimpleTable">
2764
- <xsl:with-param name="id" select="@id"/>
2765
- </xsl:call-template>
2793
+ <xsl:if test="$isGenerateTableIF = 'true' and $isApplyAutolayoutAlgorithm = 'true'">
2794
+ <xsl:call-template name="getSimpleTable">
2795
+ <xsl:with-param name="id" select="@id"/>
2796
+ </xsl:call-template>
2797
+ </xsl:if>
2766
2798
  </xsl:variable>
2767
2799
  <!-- <xsl:variable name="simple-table" select="xalan:nodeset($simple-table_)"/> -->
2768
2800
 
@@ -2858,9 +2890,9 @@
2858
2890
  </xsl:attribute>
2859
2891
  </xsl:for-each>
2860
2892
 
2861
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
2893
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'][not(@type = 'units')] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
2862
2894
  <xsl:if test="$isNoteOrFnExist = 'true'">
2863
- <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2895
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute><!-- set 0pt border, because there is a separete table below for footer -->
2864
2896
  </xsl:if>
2865
2897
 
2866
2898
  <xsl:choose>
@@ -3013,9 +3045,28 @@
3013
3045
 
3014
3046
  </fo:block>
3015
3047
 
3048
+ <!-- <xsl:if test="$namespace = 'bsi' or $namespace = 'iec' or $namespace = 'iso'"> -->
3049
+ <xsl:if test="$continued = 'true'">
3050
+ <fo:block text-align="right">
3051
+ <xsl:apply-templates select="../*[local-name() = 'note'][@type = 'units']/node()"/>
3052
+ </fo:block>
3053
+ </xsl:if>
3054
+ <!-- </xsl:if> -->
3055
+
3016
3056
  </xsl:if>
3017
3057
  </xsl:template> <!-- table/name -->
3018
3058
 
3059
+ <!-- workaround solution for https://github.com/metanorma/metanorma-iso/issues/1151#issuecomment-2033087938 -->
3060
+ <xsl:template match="*[local-name()='table']/*[local-name() = 'note'][@type = 'units']/*[local-name() = 'p']/text()" priority="4">
3061
+ <xsl:choose>
3062
+ <xsl:when test="preceding-sibling::*[local-name() = 'br']">
3063
+ <!-- remove CR or LF at start -->
3064
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'^(&#13;&#10;|&#13;|&#10;)', '')"/>
3065
+ </xsl:when>
3066
+ <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
3067
+ </xsl:choose>
3068
+ </xsl:template>
3069
+
3019
3070
  <!-- SOURCE: ... -->
3020
3071
  <xsl:template match="*[local-name()='table']/*[local-name() = 'source']" priority="2">
3021
3072
  <xsl:call-template name="termsource"/>
@@ -3426,7 +3477,7 @@
3426
3477
  <xsl:param name="colwidths"/>
3427
3478
  <xsl:param name="colgroup"/>
3428
3479
 
3429
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='example'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source'] or ../*[local-name()='p']"/>
3480
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'][not(@type = 'units')] or ../*[local-name()='example'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source'] or ../*[local-name()='p']"/>
3430
3481
 
3431
3482
  <xsl:variable name="isNoteOrFnExistShowAfterTable">
3432
3483
 
@@ -3498,7 +3549,7 @@
3498
3549
 
3499
3550
  <xsl:apply-templates select="../*[local-name()='p']"/>
3500
3551
  <xsl:apply-templates select="../*[local-name()='dl']"/>
3501
- <xsl:apply-templates select="../*[local-name()='note']"/>
3552
+ <xsl:apply-templates select="../*[local-name()='note'][not(@type = 'units')]"/>
3502
3553
  <xsl:apply-templates select="../*[local-name()='example']"/>
3503
3554
  <xsl:apply-templates select="../*[local-name()='source']"/>
3504
3555
 
@@ -3508,7 +3559,7 @@
3508
3559
 
3509
3560
  <!-- horizontal row separator -->
3510
3561
  <xsl:if test="normalize-space($isDisplayRowSeparator) = 'true'">
3511
- <xsl:if test="(../*[local-name()='note'] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
3562
+ <xsl:if test="(../*[local-name()='note'][not(@type = 'units')] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
3512
3563
  <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
3513
3564
 
3514
3565
  <xsl:call-template name="setBordersTableArray"/>
@@ -4173,7 +4224,20 @@
4173
4224
  <!-- Definition List -->
4174
4225
  <!-- ===================== -->
4175
4226
 
4176
- <xsl:template match="*[local-name()='dl']">
4227
+ <!-- for table auto-layout algorithm -->
4228
+ <xsl:template match="*[local-name()='dl']" priority="2">
4229
+ <xsl:choose>
4230
+ <xsl:when test="$table_only_with_id != '' and @id = $table_only_with_id">
4231
+ <xsl:call-template name="dl"/>
4232
+ </xsl:when>
4233
+ <xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
4234
+ <xsl:otherwise>
4235
+ <xsl:call-template name="dl"/>
4236
+ </xsl:otherwise>
4237
+ </xsl:choose>
4238
+ </xsl:template>
4239
+
4240
+ <xsl:template match="*[local-name()='dl']" name="dl">
4177
4241
  <xsl:variable name="isAdded" select="@added"/>
4178
4242
  <xsl:variable name="isDeleted" select="@deleted"/>
4179
4243
  <!-- <dl><xsl:copy-of select="."/></dl> -->
@@ -6180,7 +6244,13 @@
6180
6244
  <xsl:value-of select="$language_current_2"/>
6181
6245
  </xsl:when>
6182
6246
  <xsl:otherwise>
6183
- <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
6247
+ <xsl:variable name="language_current_3" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'])"/>
6248
+ <xsl:choose>
6249
+ <xsl:when test="$language_current_3 != ''">
6250
+ <xsl:value-of select="$language_current_3"/>
6251
+ </xsl:when>
6252
+ <xsl:otherwise>en</xsl:otherwise>
6253
+ </xsl:choose>
6184
6254
  </xsl:otherwise>
6185
6255
  </xsl:choose>
6186
6256
  </xsl:otherwise>
@@ -7044,10 +7114,11 @@
7044
7114
  </xsl:template>
7045
7115
 
7046
7116
  <xsl:template match="*[local-name() = 'image']">
7117
+ <xsl:param name="indent">0</xsl:param>
7047
7118
  <xsl:variable name="isAdded" select="../@added"/>
7048
7119
  <xsl:variable name="isDeleted" select="../@deleted"/>
7049
7120
  <xsl:choose>
7050
- <xsl:when test="ancestor::*[local-name() = 'title'] or not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
7121
+ <xsl:when test="ancestor::*[local-name() = 'title'] or not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']"> <!-- inline image ( 'image:path' in adoc, with one colon after image) -->
7051
7122
  <fo:inline padding-left="1mm" padding-right="1mm">
7052
7123
  <xsl:if test="not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
7053
7124
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
@@ -7056,7 +7127,43 @@
7056
7127
  <xsl:variable name="src">
7057
7128
  <xsl:call-template name="image_src"/>
7058
7129
  </xsl:variable>
7059
- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/>
7130
+
7131
+ <xsl:variable name="scale">
7132
+ <xsl:call-template name="getImageScale">
7133
+ <xsl:with-param name="indent" select="$indent"/>
7134
+ </xsl:call-template>
7135
+ </xsl:variable>
7136
+
7137
+ <!-- debug scale='<xsl:value-of select="$scale"/>', indent='<xsl:value-of select="$indent"/>' -->
7138
+
7139
+ <!-- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/> -->
7140
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle">
7141
+
7142
+ <xsl:variable name="width">
7143
+ <xsl:call-template name="setImageWidth"/>
7144
+ </xsl:variable>
7145
+ <xsl:if test="$width != ''">
7146
+ <xsl:attribute name="width"><xsl:value-of select="$width"/></xsl:attribute>
7147
+ </xsl:if>
7148
+ <xsl:variable name="height">
7149
+ <xsl:call-template name="setImageHeight"/>
7150
+ </xsl:variable>
7151
+ <xsl:if test="$height != ''">
7152
+ <xsl:attribute name="height"><xsl:value-of select="$height"/></xsl:attribute>
7153
+ </xsl:if>
7154
+
7155
+ <xsl:if test="$width = '' and $height = ''">
7156
+ <xsl:if test="number($scale) &lt; 100">
7157
+ <xsl:attribute name="content-width"><xsl:value-of select="number($scale)"/>%</xsl:attribute>
7158
+ <!-- <xsl:attribute name="content-width">scale-to-fit</xsl:attribute>
7159
+ <xsl:attribute name="content-height">100%</xsl:attribute>
7160
+ <xsl:attribute name="width">100%</xsl:attribute>
7161
+ <xsl:attribute name="scaling">uniform</xsl:attribute> -->
7162
+ </xsl:if>
7163
+ </xsl:if>
7164
+
7165
+ </fo:external-graphic>
7166
+
7060
7167
  </fo:inline>
7061
7168
  </xsl:when>
7062
7169
  <xsl:otherwise>
@@ -7077,25 +7184,23 @@
7077
7184
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
7078
7185
  <xsl:attribute name="scaling">uniform</xsl:attribute>
7079
7186
 
7080
- <xsl:apply-templates select="." mode="cross_image"/>
7187
+ <xsl:apply-templates select="." mode="cross_image"/>
7081
7188
 
7082
7189
  </fo:instream-foreign-object>
7083
7190
  </xsl:when>
7084
7191
  <xsl:otherwise>
7192
+ <!-- <fo:block>debug block image:
7193
+ <xsl:variable name="scale">
7194
+ <xsl:call-template name="getImageScale">
7195
+ <xsl:with-param name="indent" select="$indent"/>
7196
+ </xsl:call-template>
7197
+ </xsl:variable>
7198
+ <xsl:value-of select="concat('scale=', $scale,', indent=', $indent)"/>
7199
+ </fo:block> -->
7085
7200
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
7086
- <xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
7087
-
7088
- <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
7089
- <xsl:attribute name="width">
7090
- <xsl:value-of select="@width"/>
7091
- </xsl:attribute>
7092
- </xsl:if>
7201
+ <xsl:if test="not(@mimetype = 'image/svg+xml') and (../*[local-name() = 'name'] or parent::*[local-name() = 'figure'][@unnumbered = 'true']) and not(ancestor::*[local-name() = 'table'])">
7093
7202
 
7094
- <xsl:if test="@height != '' and @height != 'auto'">
7095
- <xsl:attribute name="height">
7096
- <xsl:value-of select="@height"/>
7097
- </xsl:attribute>
7098
- </xsl:if>
7203
+ <xsl:call-template name="setImageWidthHeight"/>
7099
7204
 
7100
7205
  <xsl:choose>
7101
7206
  <xsl:when test="@width != '' and @width != 'auto' and @height != '' and @height != 'auto'">
@@ -7103,24 +7208,18 @@
7103
7208
  </xsl:when>
7104
7209
  <xsl:otherwise>
7105
7210
 
7106
- <xsl:variable name="img_src">
7107
- <xsl:choose>
7108
- <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7109
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7110
- </xsl:choose>
7211
+ <xsl:variable name="scale">
7212
+ <xsl:call-template name="getImageScale">
7213
+ <xsl:with-param name="indent" select="$indent"/>
7214
+ </xsl:call-template>
7111
7215
  </xsl:variable>
7112
7216
 
7113
- <xsl:variable name="image_width_effective">
7114
-
7115
- <xsl:value-of select="$width_effective"/>
7116
-
7217
+ <xsl:variable name="scaleRatio">
7218
+ 1
7117
7219
  </xsl:variable>
7118
7220
 
7119
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7120
7221
  <xsl:if test="number($scale) &lt; 100">
7121
-
7122
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7123
-
7222
+ <xsl:attribute name="content-width"><xsl:value-of select="number($scale) * number($scaleRatio)"/>%</xsl:attribute>
7124
7223
  </xsl:if>
7125
7224
  </xsl:otherwise>
7126
7225
  </xsl:choose>
@@ -7136,6 +7235,62 @@
7136
7235
  </xsl:choose>
7137
7236
  </xsl:template>
7138
7237
 
7238
+ <xsl:template name="setImageWidth">
7239
+ <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
7240
+ <xsl:value-of select="@width"/>
7241
+ </xsl:if>
7242
+ </xsl:template>
7243
+ <xsl:template name="setImageHeight">
7244
+ <xsl:if test="@height != '' and @height != 'auto'">
7245
+ <xsl:value-of select="@height"/>
7246
+ </xsl:if>
7247
+ </xsl:template>
7248
+ <xsl:template name="setImageWidthHeight">
7249
+ <xsl:variable name="width">
7250
+ <xsl:call-template name="setImageWidth"/>
7251
+ </xsl:variable>
7252
+ <xsl:if test="$width != ''">
7253
+ <xsl:attribute name="width">
7254
+ <xsl:value-of select="$width"/>
7255
+ </xsl:attribute>
7256
+ </xsl:if>
7257
+ <xsl:variable name="height">
7258
+ <xsl:call-template name="setImageHeight"/>
7259
+ </xsl:variable>
7260
+ <xsl:if test="$height != ''">
7261
+ <xsl:attribute name="height">
7262
+ <xsl:value-of select="$height"/>
7263
+ </xsl:attribute>
7264
+ </xsl:if>
7265
+ </xsl:template>
7266
+
7267
+ <xsl:template name="getImageScale">
7268
+ <xsl:param name="indent"/>
7269
+ <xsl:variable name="indent_left">
7270
+ <xsl:choose>
7271
+ <xsl:when test="$indent != ''"><xsl:value-of select="$indent"/></xsl:when>
7272
+ <xsl:otherwise>0</xsl:otherwise>
7273
+ </xsl:choose>
7274
+ </xsl:variable>
7275
+ <xsl:variable name="img_src">
7276
+ <xsl:choose>
7277
+ <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7278
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7279
+ </xsl:choose>
7280
+ </xsl:variable>
7281
+
7282
+ <xsl:variable name="image_width_effective">
7283
+
7284
+ <xsl:value-of select="$width_effective - number($indent_left)"/>
7285
+
7286
+ </xsl:variable>
7287
+ <!-- <xsl:message>width_effective=<xsl:value-of select="$width_effective"/></xsl:message>
7288
+ <xsl:message>indent_left=<xsl:value-of select="$indent_left"/></xsl:message>
7289
+ <xsl:message>image_width_effective=<xsl:value-of select="$image_width_effective"/> for <xsl:value-of select="ancestor::ogc:p[1]/@id"/></xsl:message> -->
7290
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7291
+ <xsl:value-of select="$scale"/>
7292
+ </xsl:template>
7293
+
7139
7294
  <xsl:template name="image_src">
7140
7295
  <xsl:choose>
7141
7296
  <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
@@ -9811,6 +9966,7 @@
9811
9966
  </xsl:template>
9812
9967
 
9813
9968
  <xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
9969
+ <xsl:param name="indent">0</xsl:param>
9814
9970
  <xsl:choose>
9815
9971
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
9816
9972
  <fo:block-container role="SKIP">
@@ -9825,7 +9981,9 @@
9825
9981
 
9826
9982
  <fo:block-container margin-left="0mm" role="SKIP">
9827
9983
  <fo:block>
9828
- <xsl:apply-templates select="." mode="list"/>
9984
+ <xsl:apply-templates select="." mode="list">
9985
+ <xsl:with-param name="indent" select="$indent"/>
9986
+ </xsl:apply-templates>
9829
9987
  </fo:block>
9830
9988
  </fo:block-container>
9831
9989
  </fo:block-container>
@@ -9833,7 +9991,9 @@
9833
9991
  <xsl:otherwise>
9834
9992
 
9835
9993
  <fo:block role="SKIP">
9836
- <xsl:apply-templates select="." mode="list"/>
9994
+ <xsl:apply-templates select="." mode="list">
9995
+ <xsl:with-param name="indent" select="$indent"/>
9996
+ </xsl:apply-templates>
9837
9997
  </fo:block>
9838
9998
 
9839
9999
  </xsl:otherwise>
@@ -9918,6 +10078,13 @@
9918
10078
  </xsl:template>
9919
10079
 
9920
10080
  <xsl:template match="*[local-name()='li']">
10081
+ <xsl:param name="indent">0</xsl:param>
10082
+ <!-- <fo:list-item xsl:use-attribute-sets="list-item-style">
10083
+ <fo:list-item-label end-indent="label-end()"><fo:block>x</fo:block></fo:list-item-label>
10084
+ <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
10085
+ <fo:block>debug li indent=<xsl:value-of select="$indent"/></fo:block>
10086
+ </fo:list-item-body>
10087
+ </fo:list-item> -->
9921
10088
  <fo:list-item xsl:use-attribute-sets="list-item-style">
9922
10089
  <xsl:copy-of select="@id"/>
9923
10090
 
@@ -9942,7 +10109,9 @@
9942
10109
 
9943
10110
  <xsl:call-template name="refine_list-item-body-style"/>
9944
10111
 
9945
- <xsl:apply-templates/>
10112
+ <xsl:apply-templates>
10113
+ <xsl:with-param name="indent" select="$indent"/>
10114
+ </xsl:apply-templates>
9946
10115
 
9947
10116
  <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
9948
10117
 
@@ -12105,6 +12274,4 @@
12105
12274
  </xsl:if>
12106
12275
  </xsl:template>
12107
12276
 
12108
- <!-- update -->
12109
-
12110
12277
  </xsl:stylesheet>
@@ -854,17 +854,30 @@
854
854
  <xsl:param name="add_math_as_text">true</xsl:param> <!-- add math in text behind svg formula, to copy-paste formula from PDF as text -->
855
855
 
856
856
  <xsl:param name="table_if">false</xsl:param> <!-- generate extended table in IF for autolayout-algorithm -->
857
- <xsl:param name="table_widths"/> <!-- path to xml with table's widths, generated on 1st pass, based on FOP Intermediate Format -->
857
+ <xsl:param name="table_widths"/> <!-- (debug: path to) xml with table's widths, generated on 1st pass, based on FOP Intermediate Format -->
858
858
  <!-- Example: <tables>
859
- <table id="table_if_tab-symdu" page-width="75"> - table id prefixed by 'table_if_' to simple search in IF
860
- <tbody>
861
- <tr>
862
- <td id="tab-symdu_1_1">
863
- <p_len>6</p_len>
864
- <p_len>100</p_len> for 2nd paragraph
865
- <word_len>6</word_len>
866
- <word_len>20</word_len>
867
- ...
859
+ <table page-width="509103" id="table1" width_max="223561" width_min="223560">
860
+ <column width_max="39354" width_min="39354"/>
861
+ <column width_max="75394" width_min="75394"/>
862
+ <column width_max="108813" width_min="108813"/>
863
+ <tbody>
864
+ <tr>
865
+ <td width_max="39354" width_min="39354">
866
+ <p_len>39354</p_len>
867
+ <word_len>39354</word_len>
868
+ </td>
869
+
870
+ OLD:
871
+ <tables>
872
+ <table id="table_if_tab-symdu" page-width="75"> - table id prefixed by 'table_if_' to simple search in IF
873
+ <tbody>
874
+ <tr>
875
+ <td id="tab-symdu_1_1">
876
+ <p_len>6</p_len>
877
+ <p_len>100</p_len> for 2nd paragraph
878
+ <word_len>6</word_len>
879
+ <word_len>20</word_len>
880
+ ...
868
881
  -->
869
882
 
870
883
  <!-- for command line debug: <xsl:variable name="table_widths_from_if" select="document($table_widths)"/> -->
@@ -1084,6 +1097,9 @@
1084
1097
  <xsl:variable name="hair_space"> </xsl:variable>
1085
1098
  <xsl:variable name="en_dash">–</xsl:variable>
1086
1099
  <xsl:variable name="em_dash">—</xsl:variable>
1100
+ <xsl:variable name="cr">&#13;</xsl:variable>
1101
+ <xsl:variable name="lf">
1102
+ </xsl:variable>
1087
1103
 
1088
1104
  <xsl:template name="getTitle">
1089
1105
  <xsl:param name="name"/>
@@ -2751,6 +2767,20 @@
2751
2767
  </xsl:for-each>
2752
2768
  </xsl:template>
2753
2769
 
2770
+ <xsl:param name="table_only_with_id"/><!-- Example: table1, for table auto-layout algorithm -->
2771
+
2772
+ <xsl:template match="*[local-name()='table']" priority="2">
2773
+ <xsl:choose>
2774
+ <xsl:when test="$table_only_with_id != '' and @id = $table_only_with_id">
2775
+ <xsl:call-template name="table"/>
2776
+ </xsl:when>
2777
+ <xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
2778
+ <xsl:otherwise>
2779
+ <xsl:call-template name="table"/>
2780
+ </xsl:otherwise>
2781
+ </xsl:choose>
2782
+ </xsl:template>
2783
+
2754
2784
  <xsl:template match="*[local-name()='table']" name="table">
2755
2785
 
2756
2786
  <xsl:variable name="table-preamble">
@@ -2760,9 +2790,11 @@
2760
2790
  <xsl:variable name="table">
2761
2791
 
2762
2792
  <xsl:variable name="simple-table">
2763
- <xsl:call-template name="getSimpleTable">
2764
- <xsl:with-param name="id" select="@id"/>
2765
- </xsl:call-template>
2793
+ <xsl:if test="$isGenerateTableIF = 'true' and $isApplyAutolayoutAlgorithm = 'true'">
2794
+ <xsl:call-template name="getSimpleTable">
2795
+ <xsl:with-param name="id" select="@id"/>
2796
+ </xsl:call-template>
2797
+ </xsl:if>
2766
2798
  </xsl:variable>
2767
2799
  <!-- <xsl:variable name="simple-table" select="xalan:nodeset($simple-table_)"/> -->
2768
2800
 
@@ -2858,9 +2890,9 @@
2858
2890
  </xsl:attribute>
2859
2891
  </xsl:for-each>
2860
2892
 
2861
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
2893
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'][not(@type = 'units')] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
2862
2894
  <xsl:if test="$isNoteOrFnExist = 'true'">
2863
- <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2895
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute><!-- set 0pt border, because there is a separete table below for footer -->
2864
2896
  </xsl:if>
2865
2897
 
2866
2898
  <xsl:choose>
@@ -3013,9 +3045,28 @@
3013
3045
 
3014
3046
  </fo:block>
3015
3047
 
3048
+ <!-- <xsl:if test="$namespace = 'bsi' or $namespace = 'iec' or $namespace = 'iso'"> -->
3049
+ <xsl:if test="$continued = 'true'">
3050
+ <fo:block text-align="right">
3051
+ <xsl:apply-templates select="../*[local-name() = 'note'][@type = 'units']/node()"/>
3052
+ </fo:block>
3053
+ </xsl:if>
3054
+ <!-- </xsl:if> -->
3055
+
3016
3056
  </xsl:if>
3017
3057
  </xsl:template> <!-- table/name -->
3018
3058
 
3059
+ <!-- workaround solution for https://github.com/metanorma/metanorma-iso/issues/1151#issuecomment-2033087938 -->
3060
+ <xsl:template match="*[local-name()='table']/*[local-name() = 'note'][@type = 'units']/*[local-name() = 'p']/text()" priority="4">
3061
+ <xsl:choose>
3062
+ <xsl:when test="preceding-sibling::*[local-name() = 'br']">
3063
+ <!-- remove CR or LF at start -->
3064
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'^(&#13;&#10;|&#13;|&#10;)', '')"/>
3065
+ </xsl:when>
3066
+ <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
3067
+ </xsl:choose>
3068
+ </xsl:template>
3069
+
3019
3070
  <!-- SOURCE: ... -->
3020
3071
  <xsl:template match="*[local-name()='table']/*[local-name() = 'source']" priority="2">
3021
3072
  <xsl:call-template name="termsource"/>
@@ -3426,7 +3477,7 @@
3426
3477
  <xsl:param name="colwidths"/>
3427
3478
  <xsl:param name="colgroup"/>
3428
3479
 
3429
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='example'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source'] or ../*[local-name()='p']"/>
3480
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'][not(@type = 'units')] or ../*[local-name()='example'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source'] or ../*[local-name()='p']"/>
3430
3481
 
3431
3482
  <xsl:variable name="isNoteOrFnExistShowAfterTable">
3432
3483
 
@@ -3498,7 +3549,7 @@
3498
3549
 
3499
3550
  <xsl:apply-templates select="../*[local-name()='p']"/>
3500
3551
  <xsl:apply-templates select="../*[local-name()='dl']"/>
3501
- <xsl:apply-templates select="../*[local-name()='note']"/>
3552
+ <xsl:apply-templates select="../*[local-name()='note'][not(@type = 'units')]"/>
3502
3553
  <xsl:apply-templates select="../*[local-name()='example']"/>
3503
3554
  <xsl:apply-templates select="../*[local-name()='source']"/>
3504
3555
 
@@ -3508,7 +3559,7 @@
3508
3559
 
3509
3560
  <!-- horizontal row separator -->
3510
3561
  <xsl:if test="normalize-space($isDisplayRowSeparator) = 'true'">
3511
- <xsl:if test="(../*[local-name()='note'] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
3562
+ <xsl:if test="(../*[local-name()='note'][not(@type = 'units')] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
3512
3563
  <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
3513
3564
 
3514
3565
  <xsl:call-template name="setBordersTableArray"/>
@@ -4173,7 +4224,20 @@
4173
4224
  <!-- Definition List -->
4174
4225
  <!-- ===================== -->
4175
4226
 
4176
- <xsl:template match="*[local-name()='dl']">
4227
+ <!-- for table auto-layout algorithm -->
4228
+ <xsl:template match="*[local-name()='dl']" priority="2">
4229
+ <xsl:choose>
4230
+ <xsl:when test="$table_only_with_id != '' and @id = $table_only_with_id">
4231
+ <xsl:call-template name="dl"/>
4232
+ </xsl:when>
4233
+ <xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
4234
+ <xsl:otherwise>
4235
+ <xsl:call-template name="dl"/>
4236
+ </xsl:otherwise>
4237
+ </xsl:choose>
4238
+ </xsl:template>
4239
+
4240
+ <xsl:template match="*[local-name()='dl']" name="dl">
4177
4241
  <xsl:variable name="isAdded" select="@added"/>
4178
4242
  <xsl:variable name="isDeleted" select="@deleted"/>
4179
4243
  <!-- <dl><xsl:copy-of select="."/></dl> -->
@@ -6180,7 +6244,13 @@
6180
6244
  <xsl:value-of select="$language_current_2"/>
6181
6245
  </xsl:when>
6182
6246
  <xsl:otherwise>
6183
- <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
6247
+ <xsl:variable name="language_current_3" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'])"/>
6248
+ <xsl:choose>
6249
+ <xsl:when test="$language_current_3 != ''">
6250
+ <xsl:value-of select="$language_current_3"/>
6251
+ </xsl:when>
6252
+ <xsl:otherwise>en</xsl:otherwise>
6253
+ </xsl:choose>
6184
6254
  </xsl:otherwise>
6185
6255
  </xsl:choose>
6186
6256
  </xsl:otherwise>
@@ -7044,10 +7114,11 @@
7044
7114
  </xsl:template>
7045
7115
 
7046
7116
  <xsl:template match="*[local-name() = 'image']">
7117
+ <xsl:param name="indent">0</xsl:param>
7047
7118
  <xsl:variable name="isAdded" select="../@added"/>
7048
7119
  <xsl:variable name="isDeleted" select="../@deleted"/>
7049
7120
  <xsl:choose>
7050
- <xsl:when test="ancestor::*[local-name() = 'title'] or not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
7121
+ <xsl:when test="ancestor::*[local-name() = 'title'] or not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']"> <!-- inline image ( 'image:path' in adoc, with one colon after image) -->
7051
7122
  <fo:inline padding-left="1mm" padding-right="1mm">
7052
7123
  <xsl:if test="not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
7053
7124
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
@@ -7056,7 +7127,43 @@
7056
7127
  <xsl:variable name="src">
7057
7128
  <xsl:call-template name="image_src"/>
7058
7129
  </xsl:variable>
7059
- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/>
7130
+
7131
+ <xsl:variable name="scale">
7132
+ <xsl:call-template name="getImageScale">
7133
+ <xsl:with-param name="indent" select="$indent"/>
7134
+ </xsl:call-template>
7135
+ </xsl:variable>
7136
+
7137
+ <!-- debug scale='<xsl:value-of select="$scale"/>', indent='<xsl:value-of select="$indent"/>' -->
7138
+
7139
+ <!-- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/> -->
7140
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle">
7141
+
7142
+ <xsl:variable name="width">
7143
+ <xsl:call-template name="setImageWidth"/>
7144
+ </xsl:variable>
7145
+ <xsl:if test="$width != ''">
7146
+ <xsl:attribute name="width"><xsl:value-of select="$width"/></xsl:attribute>
7147
+ </xsl:if>
7148
+ <xsl:variable name="height">
7149
+ <xsl:call-template name="setImageHeight"/>
7150
+ </xsl:variable>
7151
+ <xsl:if test="$height != ''">
7152
+ <xsl:attribute name="height"><xsl:value-of select="$height"/></xsl:attribute>
7153
+ </xsl:if>
7154
+
7155
+ <xsl:if test="$width = '' and $height = ''">
7156
+ <xsl:if test="number($scale) &lt; 100">
7157
+ <xsl:attribute name="content-width"><xsl:value-of select="number($scale)"/>%</xsl:attribute>
7158
+ <!-- <xsl:attribute name="content-width">scale-to-fit</xsl:attribute>
7159
+ <xsl:attribute name="content-height">100%</xsl:attribute>
7160
+ <xsl:attribute name="width">100%</xsl:attribute>
7161
+ <xsl:attribute name="scaling">uniform</xsl:attribute> -->
7162
+ </xsl:if>
7163
+ </xsl:if>
7164
+
7165
+ </fo:external-graphic>
7166
+
7060
7167
  </fo:inline>
7061
7168
  </xsl:when>
7062
7169
  <xsl:otherwise>
@@ -7077,25 +7184,23 @@
7077
7184
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
7078
7185
  <xsl:attribute name="scaling">uniform</xsl:attribute>
7079
7186
 
7080
- <xsl:apply-templates select="." mode="cross_image"/>
7187
+ <xsl:apply-templates select="." mode="cross_image"/>
7081
7188
 
7082
7189
  </fo:instream-foreign-object>
7083
7190
  </xsl:when>
7084
7191
  <xsl:otherwise>
7192
+ <!-- <fo:block>debug block image:
7193
+ <xsl:variable name="scale">
7194
+ <xsl:call-template name="getImageScale">
7195
+ <xsl:with-param name="indent" select="$indent"/>
7196
+ </xsl:call-template>
7197
+ </xsl:variable>
7198
+ <xsl:value-of select="concat('scale=', $scale,', indent=', $indent)"/>
7199
+ </fo:block> -->
7085
7200
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
7086
- <xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
7087
-
7088
- <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
7089
- <xsl:attribute name="width">
7090
- <xsl:value-of select="@width"/>
7091
- </xsl:attribute>
7092
- </xsl:if>
7201
+ <xsl:if test="not(@mimetype = 'image/svg+xml') and (../*[local-name() = 'name'] or parent::*[local-name() = 'figure'][@unnumbered = 'true']) and not(ancestor::*[local-name() = 'table'])">
7093
7202
 
7094
- <xsl:if test="@height != '' and @height != 'auto'">
7095
- <xsl:attribute name="height">
7096
- <xsl:value-of select="@height"/>
7097
- </xsl:attribute>
7098
- </xsl:if>
7203
+ <xsl:call-template name="setImageWidthHeight"/>
7099
7204
 
7100
7205
  <xsl:choose>
7101
7206
  <xsl:when test="@width != '' and @width != 'auto' and @height != '' and @height != 'auto'">
@@ -7103,24 +7208,18 @@
7103
7208
  </xsl:when>
7104
7209
  <xsl:otherwise>
7105
7210
 
7106
- <xsl:variable name="img_src">
7107
- <xsl:choose>
7108
- <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7109
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7110
- </xsl:choose>
7211
+ <xsl:variable name="scale">
7212
+ <xsl:call-template name="getImageScale">
7213
+ <xsl:with-param name="indent" select="$indent"/>
7214
+ </xsl:call-template>
7111
7215
  </xsl:variable>
7112
7216
 
7113
- <xsl:variable name="image_width_effective">
7114
-
7115
- <xsl:value-of select="$width_effective"/>
7116
-
7217
+ <xsl:variable name="scaleRatio">
7218
+ 1
7117
7219
  </xsl:variable>
7118
7220
 
7119
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7120
7221
  <xsl:if test="number($scale) &lt; 100">
7121
-
7122
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7123
-
7222
+ <xsl:attribute name="content-width"><xsl:value-of select="number($scale) * number($scaleRatio)"/>%</xsl:attribute>
7124
7223
  </xsl:if>
7125
7224
  </xsl:otherwise>
7126
7225
  </xsl:choose>
@@ -7136,6 +7235,62 @@
7136
7235
  </xsl:choose>
7137
7236
  </xsl:template>
7138
7237
 
7238
+ <xsl:template name="setImageWidth">
7239
+ <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
7240
+ <xsl:value-of select="@width"/>
7241
+ </xsl:if>
7242
+ </xsl:template>
7243
+ <xsl:template name="setImageHeight">
7244
+ <xsl:if test="@height != '' and @height != 'auto'">
7245
+ <xsl:value-of select="@height"/>
7246
+ </xsl:if>
7247
+ </xsl:template>
7248
+ <xsl:template name="setImageWidthHeight">
7249
+ <xsl:variable name="width">
7250
+ <xsl:call-template name="setImageWidth"/>
7251
+ </xsl:variable>
7252
+ <xsl:if test="$width != ''">
7253
+ <xsl:attribute name="width">
7254
+ <xsl:value-of select="$width"/>
7255
+ </xsl:attribute>
7256
+ </xsl:if>
7257
+ <xsl:variable name="height">
7258
+ <xsl:call-template name="setImageHeight"/>
7259
+ </xsl:variable>
7260
+ <xsl:if test="$height != ''">
7261
+ <xsl:attribute name="height">
7262
+ <xsl:value-of select="$height"/>
7263
+ </xsl:attribute>
7264
+ </xsl:if>
7265
+ </xsl:template>
7266
+
7267
+ <xsl:template name="getImageScale">
7268
+ <xsl:param name="indent"/>
7269
+ <xsl:variable name="indent_left">
7270
+ <xsl:choose>
7271
+ <xsl:when test="$indent != ''"><xsl:value-of select="$indent"/></xsl:when>
7272
+ <xsl:otherwise>0</xsl:otherwise>
7273
+ </xsl:choose>
7274
+ </xsl:variable>
7275
+ <xsl:variable name="img_src">
7276
+ <xsl:choose>
7277
+ <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7278
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7279
+ </xsl:choose>
7280
+ </xsl:variable>
7281
+
7282
+ <xsl:variable name="image_width_effective">
7283
+
7284
+ <xsl:value-of select="$width_effective - number($indent_left)"/>
7285
+
7286
+ </xsl:variable>
7287
+ <!-- <xsl:message>width_effective=<xsl:value-of select="$width_effective"/></xsl:message>
7288
+ <xsl:message>indent_left=<xsl:value-of select="$indent_left"/></xsl:message>
7289
+ <xsl:message>image_width_effective=<xsl:value-of select="$image_width_effective"/> for <xsl:value-of select="ancestor::ogc:p[1]/@id"/></xsl:message> -->
7290
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7291
+ <xsl:value-of select="$scale"/>
7292
+ </xsl:template>
7293
+
7139
7294
  <xsl:template name="image_src">
7140
7295
  <xsl:choose>
7141
7296
  <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
@@ -9811,6 +9966,7 @@
9811
9966
  </xsl:template>
9812
9967
 
9813
9968
  <xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
9969
+ <xsl:param name="indent">0</xsl:param>
9814
9970
  <xsl:choose>
9815
9971
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
9816
9972
  <fo:block-container role="SKIP">
@@ -9825,7 +9981,9 @@
9825
9981
 
9826
9982
  <fo:block-container margin-left="0mm" role="SKIP">
9827
9983
  <fo:block>
9828
- <xsl:apply-templates select="." mode="list"/>
9984
+ <xsl:apply-templates select="." mode="list">
9985
+ <xsl:with-param name="indent" select="$indent"/>
9986
+ </xsl:apply-templates>
9829
9987
  </fo:block>
9830
9988
  </fo:block-container>
9831
9989
  </fo:block-container>
@@ -9833,7 +9991,9 @@
9833
9991
  <xsl:otherwise>
9834
9992
 
9835
9993
  <fo:block role="SKIP">
9836
- <xsl:apply-templates select="." mode="list"/>
9994
+ <xsl:apply-templates select="." mode="list">
9995
+ <xsl:with-param name="indent" select="$indent"/>
9996
+ </xsl:apply-templates>
9837
9997
  </fo:block>
9838
9998
 
9839
9999
  </xsl:otherwise>
@@ -9918,6 +10078,13 @@
9918
10078
  </xsl:template>
9919
10079
 
9920
10080
  <xsl:template match="*[local-name()='li']">
10081
+ <xsl:param name="indent">0</xsl:param>
10082
+ <!-- <fo:list-item xsl:use-attribute-sets="list-item-style">
10083
+ <fo:list-item-label end-indent="label-end()"><fo:block>x</fo:block></fo:list-item-label>
10084
+ <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
10085
+ <fo:block>debug li indent=<xsl:value-of select="$indent"/></fo:block>
10086
+ </fo:list-item-body>
10087
+ </fo:list-item> -->
9921
10088
  <fo:list-item xsl:use-attribute-sets="list-item-style">
9922
10089
  <xsl:copy-of select="@id"/>
9923
10090
 
@@ -9942,7 +10109,9 @@
9942
10109
 
9943
10110
  <xsl:call-template name="refine_list-item-body-style"/>
9944
10111
 
9945
- <xsl:apply-templates/>
10112
+ <xsl:apply-templates>
10113
+ <xsl:with-param name="indent" select="$indent"/>
10114
+ </xsl:apply-templates>
9946
10115
 
9947
10116
  <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
9948
10117
 
@@ -12105,6 +12274,4 @@
12105
12274
  </xsl:if>
12106
12275
  </xsl:template>
12107
12276
 
12108
- <!-- update -->
12109
-
12110
12277
  </xsl:stylesheet>
@@ -20,20 +20,6 @@ module IsoDoc
20
20
  section_break(body)
21
21
  end
22
22
 
23
- # def make_body2(body, docxml)
24
- # body.div **{ class: "WordSection2" } do |div2|
25
- # boilerplate docxml, div2
26
- # preface_block docxml, div2
27
- # abstract docxml, div2
28
- # foreword docxml, div2
29
- # introduction docxml, div2
30
- # preface docxml, div2
31
- # acknowledgements docxml, div2
32
- # div2.p { |p| p << "&nbsp;" } # placeholder
33
- # end
34
- # section_break(body)
35
- # end
36
-
37
23
  def authority_cleanup(docxml)
38
24
  super
39
25
  docxml.xpath("//div[@class = 'boilerplate-feedback']/p").each do |p|
@@ -95,7 +95,7 @@
95
95
  <text/>
96
96
  </element>
97
97
  </define>
98
- <define name="LocalizedString1">
98
+ <define name="LocalizedStringAttrs">
99
99
  <optional>
100
100
  <!-- multiple languages and scripts possible: comma delimit them if so -->
101
101
  <attribute name="language"/>
@@ -106,6 +106,10 @@
106
106
  <optional>
107
107
  <attribute name="script"/>
108
108
  </optional>
109
+ </define>
110
+ <define name="LocalizedString1">
111
+ <!-- multiple languages and scripts possible: comma delimit them if so -->
112
+ <ref name="LocalizedStringAttrs"/>
109
113
  <text/>
110
114
  </define>
111
115
  <define name="LocalizedString">
@@ -142,16 +146,8 @@
142
146
  <ref name="LocalizedStringOrXsAny"/>
143
147
  </define>
144
148
  <define name="LocalizedStringOrXsAny1">
145
- <optional>
146
- <!-- multiple languages and scripts possible: comma delimit them if so -->
147
- <attribute name="language"/>
148
- </optional>
149
- <optional>
150
- <attribute name="locale"/>
151
- </optional>
152
- <optional>
153
- <attribute name="script"/>
154
- </optional>
149
+ <!-- multiple languages and scripts possible: comma delimit them if so -->
150
+ <ref name="LocalizedStringAttrs"/>
155
151
  <oneOrMore>
156
152
  <choice>
157
153
  <text/>
@@ -208,6 +204,7 @@
208
204
  </define>
209
205
  <define name="roledescription">
210
206
  <element name="description">
207
+ <ref name="LocalizedStringAttrs"/>
211
208
  <oneOrMore>
212
209
  <ref name="TextElement"/>
213
210
  </oneOrMore>
@@ -335,6 +332,7 @@
335
332
  </define>
336
333
  <define name="affiliationdescription">
337
334
  <element name="description">
335
+ <ref name="LocalizedStringAttrs"/>
338
336
  <oneOrMore>
339
337
  <ref name="TextElement"/>
340
338
  </oneOrMore>
@@ -948,6 +946,7 @@
948
946
  <optional>
949
947
  <attribute name="type"/>
950
948
  </optional>
949
+ <ref name="LocalizedStringAttrs"/>
951
950
  <zeroOrMore>
952
951
  <ref name="TextElement"/>
953
952
  </zeroOrMore>
@@ -1041,15 +1040,7 @@
1041
1040
  <data type="boolean"/>
1042
1041
  </attribute>
1043
1042
  </optional>
1044
- <optional>
1045
- <attribute name="language"/>
1046
- </optional>
1047
- <optional>
1048
- <attribute name="locale"/>
1049
- </optional>
1050
- <optional>
1051
- <attribute name="script"/>
1052
- </optional>
1043
+ <ref name="LocalizedStringAttrs"/>
1053
1044
  <oneOrMore>
1054
1045
  <ref name="TextElement"/>
1055
1046
  </oneOrMore>
@@ -1277,6 +1268,7 @@
1277
1268
  <optional>
1278
1269
  <attribute name="type"/>
1279
1270
  </optional>
1271
+ <ref name="LocalizedStringAttrs"/>
1280
1272
  <oneOrMore>
1281
1273
  <ref name="TextElement"/>
1282
1274
  </oneOrMore>
@@ -1284,9 +1276,15 @@
1284
1276
  </define>
1285
1277
  <define name="bibabstract">
1286
1278
  <element name="abstract">
1287
- <oneOrMore>
1288
- <ref name="TextElement"/>
1289
- </oneOrMore>
1279
+ <ref name="LocalizedStringAttrs"/>
1280
+ <choice>
1281
+ <oneOrMore>
1282
+ <ref name="BasicBlock"/>
1283
+ </oneOrMore>
1284
+ <oneOrMore>
1285
+ <ref name="TextElement"/>
1286
+ </oneOrMore>
1287
+ </choice>
1290
1288
  </element>
1291
1289
  </define>
1292
1290
  <define name="copyright">
@@ -1391,6 +1389,7 @@
1391
1389
  </attribute>
1392
1390
  <optional>
1393
1391
  <element name="description">
1392
+ <ref name="LocalizedStringAttrs"/>
1394
1393
  <oneOrMore>
1395
1394
  <ref name="TextElement"/>
1396
1395
  </oneOrMore>
@@ -17,7 +17,7 @@
17
17
  these elements; we just want one namespace for any child grammars
18
18
  of this.
19
19
  -->
20
- <!-- VERSION v1.3.0 -->
20
+ <!-- VERSION v1.3.1 -->
21
21
  <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
22
22
  <include href="reqt.rng"/>
23
23
  <include href="basicdoc.rng">
@@ -1346,38 +1346,41 @@
1346
1346
  </oneOrMore>
1347
1347
  </element>
1348
1348
  </define>
1349
+ <define name="Section-Attributes">
1350
+ <optional>
1351
+ <attribute name="id">
1352
+ <data type="ID"/>
1353
+ </attribute>
1354
+ </optional>
1355
+ <optional>
1356
+ <attribute name="language"/>
1357
+ </optional>
1358
+ <optional>
1359
+ <attribute name="script"/>
1360
+ </optional>
1361
+ <optional>
1362
+ <attribute name="inline-header">
1363
+ <data type="boolean"/>
1364
+ </attribute>
1365
+ </optional>
1366
+ <optional>
1367
+ <attribute name="number"/>
1368
+ </optional>
1369
+ <optional>
1370
+ <attribute name="branch-number"/>
1371
+ </optional>
1372
+ <optional>
1373
+ <attribute name="obligation">
1374
+ <choice>
1375
+ <value>normative</value>
1376
+ <value>informative</value>
1377
+ </choice>
1378
+ </attribute>
1379
+ </optional>
1380
+ </define>
1349
1381
  <define name="reference-clause">
1350
1382
  <element name="clause">
1351
- <optional>
1352
- <attribute name="id">
1353
- <data type="ID"/>
1354
- </attribute>
1355
- </optional>
1356
- <optional>
1357
- <attribute name="language"/>
1358
- </optional>
1359
- <optional>
1360
- <attribute name="script"/>
1361
- </optional>
1362
- <optional>
1363
- <attribute name="inline-header">
1364
- <data type="boolean"/>
1365
- </attribute>
1366
- </optional>
1367
- <optional>
1368
- <attribute name="number"/>
1369
- </optional>
1370
- <optional>
1371
- <attribute name="branch-number"/>
1372
- </optional>
1373
- <optional>
1374
- <attribute name="obligation">
1375
- <choice>
1376
- <value>normative</value>
1377
- <value>informative</value>
1378
- </choice>
1379
- </attribute>
1380
- </optional>
1383
+ <ref name="Section-Attributes"/>
1381
1384
  <optional>
1382
1385
  <ref name="section-title"/>
1383
1386
  </optional>
@@ -1566,36 +1569,7 @@
1566
1569
  </element>
1567
1570
  </define>
1568
1571
  <define name="Content-Section">
1569
- <optional>
1570
- <attribute name="id">
1571
- <data type="ID"/>
1572
- </attribute>
1573
- </optional>
1574
- <optional>
1575
- <attribute name="language"/>
1576
- </optional>
1577
- <optional>
1578
- <attribute name="script"/>
1579
- </optional>
1580
- <optional>
1581
- <attribute name="inline-header">
1582
- <data type="boolean"/>
1583
- </attribute>
1584
- </optional>
1585
- <optional>
1586
- <attribute name="obligation">
1587
- <choice>
1588
- <value>normative</value>
1589
- <value>informative</value>
1590
- </choice>
1591
- </attribute>
1592
- </optional>
1593
- <optional>
1594
- <attribute name="number"/>
1595
- </optional>
1596
- <optional>
1597
- <attribute name="branch-number"/>
1598
- </optional>
1572
+ <ref name="Section-Attributes"/>
1599
1573
  <optional>
1600
1574
  <attribute name="type"/>
1601
1575
  </optional>
@@ -1617,39 +1591,10 @@
1617
1591
  </element>
1618
1592
  </define>
1619
1593
  <define name="Clause-Section">
1620
- <optional>
1621
- <attribute name="id">
1622
- <data type="ID"/>
1623
- </attribute>
1624
- </optional>
1625
- <optional>
1626
- <attribute name="language"/>
1627
- </optional>
1628
- <optional>
1629
- <attribute name="script"/>
1630
- </optional>
1631
- <optional>
1632
- <attribute name="inline-header">
1633
- <data type="boolean"/>
1634
- </attribute>
1635
- </optional>
1636
- <optional>
1637
- <attribute name="obligation">
1638
- <choice>
1639
- <value>normative</value>
1640
- <value>informative</value>
1641
- </choice>
1642
- </attribute>
1643
- </optional>
1594
+ <ref name="Section-Attributes"/>
1644
1595
  <optional>
1645
1596
  <attribute name="type"/>
1646
1597
  </optional>
1647
- <optional>
1648
- <attribute name="number"/>
1649
- </optional>
1650
- <optional>
1651
- <attribute name="branch-number"/>
1652
- </optional>
1653
1598
  <optional>
1654
1599
  <ref name="section-title"/>
1655
1600
  </optional>
@@ -1730,34 +1675,10 @@
1730
1675
  </define>
1731
1676
  <define name="terms">
1732
1677
  <element name="terms">
1733
- <optional>
1734
- <attribute name="id">
1735
- <data type="ID"/>
1736
- </attribute>
1737
- </optional>
1738
- <optional>
1739
- <attribute name="language"/>
1740
- </optional>
1741
- <optional>
1742
- <attribute name="script"/>
1743
- </optional>
1678
+ <ref name="Section-Attributes"/>
1744
1679
  <optional>
1745
1680
  <attribute name="type"/>
1746
1681
  </optional>
1747
- <optional>
1748
- <attribute name="number"/>
1749
- </optional>
1750
- <optional>
1751
- <attribute name="branch-number"/>
1752
- </optional>
1753
- <optional>
1754
- <attribute name="obligation">
1755
- <choice>
1756
- <value>normative</value>
1757
- <value>informative</value>
1758
- </choice>
1759
- </attribute>
1760
- </optional>
1761
1682
  <optional>
1762
1683
  <ref name="section-title"/>
1763
1684
  </optional>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module IHO
3
- VERSION = "0.9.5".freeze
3
+ VERSION = "0.9.7".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iho
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-25 00:00:00.000000000 Z
11
+ date: 2024-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-generic