metanorma-ieee 1.2.6 → 1.2.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a2d51c132909941f89ee23b619d8be7555123ca3c7c75fb051fc6ad2086c2c42
4
- data.tar.gz: 6935f9b8388b2157bb0398ca7fa8121b64431f17d0f3b8ff25d90da12e32888b
3
+ metadata.gz: 8652a600f137bcba7e10c492a92b7e6ab04371d339cf9a16894b1c77c59cc8e3
4
+ data.tar.gz: fe288e7f0403164869aeba0c2fdf99381a6f9a6b7c53c58bf5fa81d87df1ef0c
5
5
  SHA512:
6
- metadata.gz: 00ab0f45d0a138d195447e4698d659df23c6b64ec96ed3bbf7df3bb3c31bea845d2d97f71b823cab64fce1474d0842f7b2f8d3f4e047e10ad4ceb2106001b21d
7
- data.tar.gz: 96688b9710f549546e10af742140926189283ae159987bd5ad4468422cfbab0970a1ede9c2b583746fc87743f6d1dd7cf3d608041a027ec3b1c7567ea0d01fee
6
+ metadata.gz: e931643f63f511b2f8f8cfbb3bc92a29d7529ded0d16178e25e4502676a047f0a556c9ea954836db2a82365a12639855e81ceab5b311962a0dbebe16955c7ed0
7
+ data.tar.gz: 014ba75f62d4f7ffb0010bba6dcbab2d3ece5888ff5e5146ecd19cda17744ad61a8f9d0303eb910955ce46466d18a57db9c05f987a9f383263ec0a68d8a5eb8a
@@ -3811,17 +3811,30 @@
3811
3811
  <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 -->
3812
3812
 
3813
3813
  <xsl:param name="table_if">false</xsl:param> <!-- generate extended table in IF for autolayout-algorithm -->
3814
- <xsl:param name="table_widths"/> <!-- path to xml with table's widths, generated on 1st pass, based on FOP Intermediate Format -->
3814
+ <xsl:param name="table_widths"/> <!-- (debug: path to) xml with table's widths, generated on 1st pass, based on FOP Intermediate Format -->
3815
3815
  <!-- Example: <tables>
3816
- <table id="table_if_tab-symdu" page-width="75"> - table id prefixed by 'table_if_' to simple search in IF
3817
- <tbody>
3818
- <tr>
3819
- <td id="tab-symdu_1_1">
3820
- <p_len>6</p_len>
3821
- <p_len>100</p_len> for 2nd paragraph
3822
- <word_len>6</word_len>
3823
- <word_len>20</word_len>
3824
- ...
3816
+ <table page-width="509103" id="table1" width_max="223561" width_min="223560">
3817
+ <column width_max="39354" width_min="39354"/>
3818
+ <column width_max="75394" width_min="75394"/>
3819
+ <column width_max="108813" width_min="108813"/>
3820
+ <tbody>
3821
+ <tr>
3822
+ <td width_max="39354" width_min="39354">
3823
+ <p_len>39354</p_len>
3824
+ <word_len>39354</word_len>
3825
+ </td>
3826
+
3827
+ OLD:
3828
+ <tables>
3829
+ <table id="table_if_tab-symdu" page-width="75"> - table id prefixed by 'table_if_' to simple search in IF
3830
+ <tbody>
3831
+ <tr>
3832
+ <td id="tab-symdu_1_1">
3833
+ <p_len>6</p_len>
3834
+ <p_len>100</p_len> for 2nd paragraph
3835
+ <word_len>6</word_len>
3836
+ <word_len>20</word_len>
3837
+ ...
3825
3838
  -->
3826
3839
 
3827
3840
  <!-- for command line debug: <xsl:variable name="table_widths_from_if" select="document($table_widths)"/> -->
@@ -4041,6 +4054,9 @@
4041
4054
  <xsl:variable name="hair_space"> </xsl:variable>
4042
4055
  <xsl:variable name="en_dash">–</xsl:variable>
4043
4056
  <xsl:variable name="em_dash">—</xsl:variable>
4057
+ <xsl:variable name="cr">&#13;</xsl:variable>
4058
+ <xsl:variable name="lf">
4059
+ </xsl:variable>
4044
4060
 
4045
4061
  <xsl:template name="getTitle">
4046
4062
  <xsl:param name="name"/>
@@ -5767,6 +5783,20 @@
5767
5783
  </xsl:for-each>
5768
5784
  </xsl:template>
5769
5785
 
5786
+ <xsl:param name="table_only_with_id"/><!-- Example: table1, for table auto-layout algorithm -->
5787
+
5788
+ <xsl:template match="*[local-name()='table']" priority="2">
5789
+ <xsl:choose>
5790
+ <xsl:when test="$table_only_with_id != '' and @id = $table_only_with_id">
5791
+ <xsl:call-template name="table"/>
5792
+ </xsl:when>
5793
+ <xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
5794
+ <xsl:otherwise>
5795
+ <xsl:call-template name="table"/>
5796
+ </xsl:otherwise>
5797
+ </xsl:choose>
5798
+ </xsl:template>
5799
+
5770
5800
  <xsl:template match="*[local-name()='table']" name="table">
5771
5801
 
5772
5802
  <xsl:variable name="table-preamble">
@@ -5776,9 +5806,11 @@
5776
5806
  <xsl:variable name="table">
5777
5807
 
5778
5808
  <xsl:variable name="simple-table">
5779
- <xsl:call-template name="getSimpleTable">
5780
- <xsl:with-param name="id" select="@id"/>
5781
- </xsl:call-template>
5809
+ <xsl:if test="$isGenerateTableIF = 'true' and $isApplyAutolayoutAlgorithm = 'true'">
5810
+ <xsl:call-template name="getSimpleTable">
5811
+ <xsl:with-param name="id" select="@id"/>
5812
+ </xsl:call-template>
5813
+ </xsl:if>
5782
5814
  </xsl:variable>
5783
5815
  <!-- <xsl:variable name="simple-table" select="xalan:nodeset($simple-table_)"/> -->
5784
5816
 
@@ -5879,9 +5911,9 @@
5879
5911
  </xsl:attribute>
5880
5912
  </xsl:for-each>
5881
5913
 
5882
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
5914
+ <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']"/>
5883
5915
  <xsl:if test="$isNoteOrFnExist = 'true'">
5884
- <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
5916
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute><!-- set 0pt border, because there is a separete table below for footer -->
5885
5917
  </xsl:if>
5886
5918
 
5887
5919
  <xsl:choose>
@@ -6009,6 +6041,17 @@
6009
6041
  </xsl:if>
6010
6042
  </xsl:template> <!-- table/name -->
6011
6043
 
6044
+ <!-- workaround solution for https://github.com/metanorma/metanorma-iso/issues/1151#issuecomment-2033087938 -->
6045
+ <xsl:template match="*[local-name()='table']/*[local-name() = 'note'][@type = 'units']/*[local-name() = 'p']/text()" priority="4">
6046
+ <xsl:choose>
6047
+ <xsl:when test="preceding-sibling::*[local-name() = 'br']">
6048
+ <!-- remove CR or LF at start -->
6049
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'^(&#13;&#10;|&#13;|&#10;)', '')"/>
6050
+ </xsl:when>
6051
+ <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
6052
+ </xsl:choose>
6053
+ </xsl:template>
6054
+
6012
6055
  <!-- SOURCE: ... -->
6013
6056
  <xsl:template match="*[local-name()='table']/*[local-name() = 'source']" priority="2">
6014
6057
  <xsl:call-template name="termsource"/>
@@ -6430,7 +6473,7 @@
6430
6473
  <xsl:param name="colwidths"/>
6431
6474
  <xsl:param name="colgroup"/>
6432
6475
 
6433
- <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']"/>
6476
+ <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']"/>
6434
6477
 
6435
6478
  <xsl:variable name="isNoteOrFnExistShowAfterTable">
6436
6479
 
@@ -6502,7 +6545,7 @@
6502
6545
 
6503
6546
  <xsl:apply-templates select="../*[local-name()='p']"/>
6504
6547
  <xsl:apply-templates select="../*[local-name()='dl']"/>
6505
- <xsl:apply-templates select="../*[local-name()='note']"/>
6548
+ <xsl:apply-templates select="../*[local-name()='note'][not(@type = 'units')]"/>
6506
6549
  <xsl:apply-templates select="../*[local-name()='example']"/>
6507
6550
  <xsl:apply-templates select="../*[local-name()='source']"/>
6508
6551
 
@@ -6512,7 +6555,7 @@
6512
6555
 
6513
6556
  <!-- horizontal row separator -->
6514
6557
  <xsl:if test="normalize-space($isDisplayRowSeparator) = 'true'">
6515
- <xsl:if test="(../*[local-name()='note'] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
6558
+ <xsl:if test="(../*[local-name()='note'][not(@type = 'units')] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
6516
6559
  <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
6517
6560
 
6518
6561
  <xsl:call-template name="setBordersTableArray"/>
@@ -7219,7 +7262,20 @@
7219
7262
  <!-- Definition List -->
7220
7263
  <!-- ===================== -->
7221
7264
 
7222
- <xsl:template match="*[local-name()='dl']">
7265
+ <!-- for table auto-layout algorithm -->
7266
+ <xsl:template match="*[local-name()='dl']" priority="2">
7267
+ <xsl:choose>
7268
+ <xsl:when test="$table_only_with_id != '' and @id = $table_only_with_id">
7269
+ <xsl:call-template name="dl"/>
7270
+ </xsl:when>
7271
+ <xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
7272
+ <xsl:otherwise>
7273
+ <xsl:call-template name="dl"/>
7274
+ </xsl:otherwise>
7275
+ </xsl:choose>
7276
+ </xsl:template>
7277
+
7278
+ <xsl:template match="*[local-name()='dl']" name="dl">
7223
7279
  <xsl:variable name="isAdded" select="@added"/>
7224
7280
  <xsl:variable name="isDeleted" select="@deleted"/>
7225
7281
  <!-- <dl><xsl:copy-of select="."/></dl> -->
@@ -9148,7 +9204,13 @@
9148
9204
  <xsl:value-of select="$language_current_2"/>
9149
9205
  </xsl:when>
9150
9206
  <xsl:otherwise>
9151
- <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
9207
+ <xsl:variable name="language_current_3" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'])"/>
9208
+ <xsl:choose>
9209
+ <xsl:when test="$language_current_3 != ''">
9210
+ <xsl:value-of select="$language_current_3"/>
9211
+ </xsl:when>
9212
+ <xsl:otherwise>en</xsl:otherwise>
9213
+ </xsl:choose>
9152
9214
  </xsl:otherwise>
9153
9215
  </xsl:choose>
9154
9216
  </xsl:otherwise>
@@ -10016,10 +10078,11 @@
10016
10078
  </xsl:template>
10017
10079
 
10018
10080
  <xsl:template match="*[local-name() = 'image']">
10081
+ <xsl:param name="indent">0</xsl:param>
10019
10082
  <xsl:variable name="isAdded" select="../@added"/>
10020
10083
  <xsl:variable name="isDeleted" select="../@deleted"/>
10021
10084
  <xsl:choose>
10022
- <xsl:when test="ancestor::*[local-name() = 'title'] or not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
10085
+ <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) -->
10023
10086
  <fo:inline padding-left="1mm" padding-right="1mm">
10024
10087
  <xsl:if test="not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
10025
10088
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
@@ -10028,7 +10091,43 @@
10028
10091
  <xsl:variable name="src">
10029
10092
  <xsl:call-template name="image_src"/>
10030
10093
  </xsl:variable>
10031
- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/>
10094
+
10095
+ <xsl:variable name="scale">
10096
+ <xsl:call-template name="getImageScale">
10097
+ <xsl:with-param name="indent" select="$indent"/>
10098
+ </xsl:call-template>
10099
+ </xsl:variable>
10100
+
10101
+ <!-- debug scale='<xsl:value-of select="$scale"/>', indent='<xsl:value-of select="$indent"/>' -->
10102
+
10103
+ <!-- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/> -->
10104
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle">
10105
+
10106
+ <xsl:variable name="width">
10107
+ <xsl:call-template name="setImageWidth"/>
10108
+ </xsl:variable>
10109
+ <xsl:if test="$width != ''">
10110
+ <xsl:attribute name="width"><xsl:value-of select="$width"/></xsl:attribute>
10111
+ </xsl:if>
10112
+ <xsl:variable name="height">
10113
+ <xsl:call-template name="setImageHeight"/>
10114
+ </xsl:variable>
10115
+ <xsl:if test="$height != ''">
10116
+ <xsl:attribute name="height"><xsl:value-of select="$height"/></xsl:attribute>
10117
+ </xsl:if>
10118
+
10119
+ <xsl:if test="$width = '' and $height = ''">
10120
+ <xsl:if test="number($scale) &lt; 100">
10121
+ <xsl:attribute name="content-width"><xsl:value-of select="number($scale)"/>%</xsl:attribute>
10122
+ <!-- <xsl:attribute name="content-width">scale-to-fit</xsl:attribute>
10123
+ <xsl:attribute name="content-height">100%</xsl:attribute>
10124
+ <xsl:attribute name="width">100%</xsl:attribute>
10125
+ <xsl:attribute name="scaling">uniform</xsl:attribute> -->
10126
+ </xsl:if>
10127
+ </xsl:if>
10128
+
10129
+ </fo:external-graphic>
10130
+
10032
10131
  </fo:inline>
10033
10132
  </xsl:when>
10034
10133
  <xsl:otherwise>
@@ -10049,25 +10148,23 @@
10049
10148
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
10050
10149
  <xsl:attribute name="scaling">uniform</xsl:attribute>
10051
10150
 
10052
- <xsl:apply-templates select="." mode="cross_image"/>
10151
+ <xsl:apply-templates select="." mode="cross_image"/>
10053
10152
 
10054
10153
  </fo:instream-foreign-object>
10055
10154
  </xsl:when>
10056
10155
  <xsl:otherwise>
10156
+ <!-- <fo:block>debug block image:
10157
+ <xsl:variable name="scale">
10158
+ <xsl:call-template name="getImageScale">
10159
+ <xsl:with-param name="indent" select="$indent"/>
10160
+ </xsl:call-template>
10161
+ </xsl:variable>
10162
+ <xsl:value-of select="concat('scale=', $scale,', indent=', $indent)"/>
10163
+ </fo:block> -->
10057
10164
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
10058
- <xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
10165
+ <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'])">
10059
10166
 
10060
- <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
10061
- <xsl:attribute name="width">
10062
- <xsl:value-of select="@width"/>
10063
- </xsl:attribute>
10064
- </xsl:if>
10065
-
10066
- <xsl:if test="@height != '' and @height != 'auto'">
10067
- <xsl:attribute name="height">
10068
- <xsl:value-of select="@height"/>
10069
- </xsl:attribute>
10070
- </xsl:if>
10167
+ <xsl:call-template name="setImageWidthHeight"/>
10071
10168
 
10072
10169
  <xsl:choose>
10073
10170
  <xsl:when test="@width != '' and @width != 'auto' and @height != '' and @height != 'auto'">
@@ -10075,24 +10172,18 @@
10075
10172
  </xsl:when>
10076
10173
  <xsl:otherwise>
10077
10174
 
10078
- <xsl:variable name="img_src">
10079
- <xsl:choose>
10080
- <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
10081
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
10082
- </xsl:choose>
10175
+ <xsl:variable name="scale">
10176
+ <xsl:call-template name="getImageScale">
10177
+ <xsl:with-param name="indent" select="$indent"/>
10178
+ </xsl:call-template>
10083
10179
  </xsl:variable>
10084
10180
 
10085
- <xsl:variable name="image_width_effective">
10086
-
10087
- <xsl:value-of select="$width_effective"/>
10088
-
10181
+ <xsl:variable name="scaleRatio">
10182
+ 1
10089
10183
  </xsl:variable>
10090
10184
 
10091
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
10092
10185
  <xsl:if test="number($scale) &lt; 100">
10093
-
10094
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
10095
-
10186
+ <xsl:attribute name="content-width"><xsl:value-of select="number($scale) * number($scaleRatio)"/>%</xsl:attribute>
10096
10187
  </xsl:if>
10097
10188
  </xsl:otherwise>
10098
10189
  </xsl:choose>
@@ -10108,6 +10199,62 @@
10108
10199
  </xsl:choose>
10109
10200
  </xsl:template>
10110
10201
 
10202
+ <xsl:template name="setImageWidth">
10203
+ <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
10204
+ <xsl:value-of select="@width"/>
10205
+ </xsl:if>
10206
+ </xsl:template>
10207
+ <xsl:template name="setImageHeight">
10208
+ <xsl:if test="@height != '' and @height != 'auto'">
10209
+ <xsl:value-of select="@height"/>
10210
+ </xsl:if>
10211
+ </xsl:template>
10212
+ <xsl:template name="setImageWidthHeight">
10213
+ <xsl:variable name="width">
10214
+ <xsl:call-template name="setImageWidth"/>
10215
+ </xsl:variable>
10216
+ <xsl:if test="$width != ''">
10217
+ <xsl:attribute name="width">
10218
+ <xsl:value-of select="$width"/>
10219
+ </xsl:attribute>
10220
+ </xsl:if>
10221
+ <xsl:variable name="height">
10222
+ <xsl:call-template name="setImageHeight"/>
10223
+ </xsl:variable>
10224
+ <xsl:if test="$height != ''">
10225
+ <xsl:attribute name="height">
10226
+ <xsl:value-of select="$height"/>
10227
+ </xsl:attribute>
10228
+ </xsl:if>
10229
+ </xsl:template>
10230
+
10231
+ <xsl:template name="getImageScale">
10232
+ <xsl:param name="indent"/>
10233
+ <xsl:variable name="indent_left">
10234
+ <xsl:choose>
10235
+ <xsl:when test="$indent != ''"><xsl:value-of select="$indent"/></xsl:when>
10236
+ <xsl:otherwise>0</xsl:otherwise>
10237
+ </xsl:choose>
10238
+ </xsl:variable>
10239
+ <xsl:variable name="img_src">
10240
+ <xsl:choose>
10241
+ <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
10242
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
10243
+ </xsl:choose>
10244
+ </xsl:variable>
10245
+
10246
+ <xsl:variable name="image_width_effective">
10247
+
10248
+ <xsl:value-of select="$width_effective - number($indent_left)"/>
10249
+
10250
+ </xsl:variable>
10251
+ <!-- <xsl:message>width_effective=<xsl:value-of select="$width_effective"/></xsl:message>
10252
+ <xsl:message>indent_left=<xsl:value-of select="$indent_left"/></xsl:message>
10253
+ <xsl:message>image_width_effective=<xsl:value-of select="$image_width_effective"/> for <xsl:value-of select="ancestor::ogc:p[1]/@id"/></xsl:message> -->
10254
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
10255
+ <xsl:value-of select="$scale"/>
10256
+ </xsl:template>
10257
+
10111
10258
  <xsl:template name="image_src">
10112
10259
  <xsl:choose>
10113
10260
  <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
@@ -12788,6 +12935,7 @@
12788
12935
  </xsl:template>
12789
12936
 
12790
12937
  <xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
12938
+ <xsl:param name="indent">0</xsl:param>
12791
12939
  <xsl:choose>
12792
12940
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
12793
12941
  <fo:block-container role="SKIP">
@@ -12802,7 +12950,9 @@
12802
12950
 
12803
12951
  <fo:block-container margin-left="0mm" role="SKIP">
12804
12952
  <fo:block>
12805
- <xsl:apply-templates select="." mode="list"/>
12953
+ <xsl:apply-templates select="." mode="list">
12954
+ <xsl:with-param name="indent" select="$indent"/>
12955
+ </xsl:apply-templates>
12806
12956
  </fo:block>
12807
12957
  </fo:block-container>
12808
12958
  </fo:block-container>
@@ -12810,7 +12960,9 @@
12810
12960
  <xsl:otherwise>
12811
12961
 
12812
12962
  <fo:block role="SKIP">
12813
- <xsl:apply-templates select="." mode="list"/>
12963
+ <xsl:apply-templates select="." mode="list">
12964
+ <xsl:with-param name="indent" select="$indent"/>
12965
+ </xsl:apply-templates>
12814
12966
  </fo:block>
12815
12967
 
12816
12968
  </xsl:otherwise>
@@ -12895,6 +13047,13 @@
12895
13047
  </xsl:template>
12896
13048
 
12897
13049
  <xsl:template match="*[local-name()='li']">
13050
+ <xsl:param name="indent">0</xsl:param>
13051
+ <!-- <fo:list-item xsl:use-attribute-sets="list-item-style">
13052
+ <fo:list-item-label end-indent="label-end()"><fo:block>x</fo:block></fo:list-item-label>
13053
+ <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
13054
+ <fo:block>debug li indent=<xsl:value-of select="$indent"/></fo:block>
13055
+ </fo:list-item-body>
13056
+ </fo:list-item> -->
12898
13057
  <fo:list-item xsl:use-attribute-sets="list-item-style">
12899
13058
  <xsl:copy-of select="@id"/>
12900
13059
 
@@ -12919,7 +13078,9 @@
12919
13078
 
12920
13079
  <xsl:call-template name="refine_list-item-body-style"/>
12921
13080
 
12922
- <xsl:apply-templates/>
13081
+ <xsl:apply-templates>
13082
+ <xsl:with-param name="indent" select="$indent"/>
13083
+ </xsl:apply-templates>
12923
13084
 
12924
13085
  <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
12925
13086
 
@@ -15231,6 +15392,4 @@
15231
15392
  </xsl:if>
15232
15393
  </xsl:template>
15233
15394
 
15234
- <!-- update -->
15235
-
15236
15395
  </xsl:stylesheet>
@@ -3811,17 +3811,30 @@
3811
3811
  <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 -->
3812
3812
 
3813
3813
  <xsl:param name="table_if">false</xsl:param> <!-- generate extended table in IF for autolayout-algorithm -->
3814
- <xsl:param name="table_widths"/> <!-- path to xml with table's widths, generated on 1st pass, based on FOP Intermediate Format -->
3814
+ <xsl:param name="table_widths"/> <!-- (debug: path to) xml with table's widths, generated on 1st pass, based on FOP Intermediate Format -->
3815
3815
  <!-- Example: <tables>
3816
- <table id="table_if_tab-symdu" page-width="75"> - table id prefixed by 'table_if_' to simple search in IF
3817
- <tbody>
3818
- <tr>
3819
- <td id="tab-symdu_1_1">
3820
- <p_len>6</p_len>
3821
- <p_len>100</p_len> for 2nd paragraph
3822
- <word_len>6</word_len>
3823
- <word_len>20</word_len>
3824
- ...
3816
+ <table page-width="509103" id="table1" width_max="223561" width_min="223560">
3817
+ <column width_max="39354" width_min="39354"/>
3818
+ <column width_max="75394" width_min="75394"/>
3819
+ <column width_max="108813" width_min="108813"/>
3820
+ <tbody>
3821
+ <tr>
3822
+ <td width_max="39354" width_min="39354">
3823
+ <p_len>39354</p_len>
3824
+ <word_len>39354</word_len>
3825
+ </td>
3826
+
3827
+ OLD:
3828
+ <tables>
3829
+ <table id="table_if_tab-symdu" page-width="75"> - table id prefixed by 'table_if_' to simple search in IF
3830
+ <tbody>
3831
+ <tr>
3832
+ <td id="tab-symdu_1_1">
3833
+ <p_len>6</p_len>
3834
+ <p_len>100</p_len> for 2nd paragraph
3835
+ <word_len>6</word_len>
3836
+ <word_len>20</word_len>
3837
+ ...
3825
3838
  -->
3826
3839
 
3827
3840
  <!-- for command line debug: <xsl:variable name="table_widths_from_if" select="document($table_widths)"/> -->
@@ -4041,6 +4054,9 @@
4041
4054
  <xsl:variable name="hair_space"> </xsl:variable>
4042
4055
  <xsl:variable name="en_dash">–</xsl:variable>
4043
4056
  <xsl:variable name="em_dash">—</xsl:variable>
4057
+ <xsl:variable name="cr">&#13;</xsl:variable>
4058
+ <xsl:variable name="lf">
4059
+ </xsl:variable>
4044
4060
 
4045
4061
  <xsl:template name="getTitle">
4046
4062
  <xsl:param name="name"/>
@@ -5767,6 +5783,20 @@
5767
5783
  </xsl:for-each>
5768
5784
  </xsl:template>
5769
5785
 
5786
+ <xsl:param name="table_only_with_id"/><!-- Example: table1, for table auto-layout algorithm -->
5787
+
5788
+ <xsl:template match="*[local-name()='table']" priority="2">
5789
+ <xsl:choose>
5790
+ <xsl:when test="$table_only_with_id != '' and @id = $table_only_with_id">
5791
+ <xsl:call-template name="table"/>
5792
+ </xsl:when>
5793
+ <xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
5794
+ <xsl:otherwise>
5795
+ <xsl:call-template name="table"/>
5796
+ </xsl:otherwise>
5797
+ </xsl:choose>
5798
+ </xsl:template>
5799
+
5770
5800
  <xsl:template match="*[local-name()='table']" name="table">
5771
5801
 
5772
5802
  <xsl:variable name="table-preamble">
@@ -5776,9 +5806,11 @@
5776
5806
  <xsl:variable name="table">
5777
5807
 
5778
5808
  <xsl:variable name="simple-table">
5779
- <xsl:call-template name="getSimpleTable">
5780
- <xsl:with-param name="id" select="@id"/>
5781
- </xsl:call-template>
5809
+ <xsl:if test="$isGenerateTableIF = 'true' and $isApplyAutolayoutAlgorithm = 'true'">
5810
+ <xsl:call-template name="getSimpleTable">
5811
+ <xsl:with-param name="id" select="@id"/>
5812
+ </xsl:call-template>
5813
+ </xsl:if>
5782
5814
  </xsl:variable>
5783
5815
  <!-- <xsl:variable name="simple-table" select="xalan:nodeset($simple-table_)"/> -->
5784
5816
 
@@ -5879,9 +5911,9 @@
5879
5911
  </xsl:attribute>
5880
5912
  </xsl:for-each>
5881
5913
 
5882
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
5914
+ <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']"/>
5883
5915
  <xsl:if test="$isNoteOrFnExist = 'true'">
5884
- <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
5916
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute><!-- set 0pt border, because there is a separete table below for footer -->
5885
5917
  </xsl:if>
5886
5918
 
5887
5919
  <xsl:choose>
@@ -6009,6 +6041,17 @@
6009
6041
  </xsl:if>
6010
6042
  </xsl:template> <!-- table/name -->
6011
6043
 
6044
+ <!-- workaround solution for https://github.com/metanorma/metanorma-iso/issues/1151#issuecomment-2033087938 -->
6045
+ <xsl:template match="*[local-name()='table']/*[local-name() = 'note'][@type = 'units']/*[local-name() = 'p']/text()" priority="4">
6046
+ <xsl:choose>
6047
+ <xsl:when test="preceding-sibling::*[local-name() = 'br']">
6048
+ <!-- remove CR or LF at start -->
6049
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'^(&#13;&#10;|&#13;|&#10;)', '')"/>
6050
+ </xsl:when>
6051
+ <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
6052
+ </xsl:choose>
6053
+ </xsl:template>
6054
+
6012
6055
  <!-- SOURCE: ... -->
6013
6056
  <xsl:template match="*[local-name()='table']/*[local-name() = 'source']" priority="2">
6014
6057
  <xsl:call-template name="termsource"/>
@@ -6430,7 +6473,7 @@
6430
6473
  <xsl:param name="colwidths"/>
6431
6474
  <xsl:param name="colgroup"/>
6432
6475
 
6433
- <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']"/>
6476
+ <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']"/>
6434
6477
 
6435
6478
  <xsl:variable name="isNoteOrFnExistShowAfterTable">
6436
6479
 
@@ -6502,7 +6545,7 @@
6502
6545
 
6503
6546
  <xsl:apply-templates select="../*[local-name()='p']"/>
6504
6547
  <xsl:apply-templates select="../*[local-name()='dl']"/>
6505
- <xsl:apply-templates select="../*[local-name()='note']"/>
6548
+ <xsl:apply-templates select="../*[local-name()='note'][not(@type = 'units')]"/>
6506
6549
  <xsl:apply-templates select="../*[local-name()='example']"/>
6507
6550
  <xsl:apply-templates select="../*[local-name()='source']"/>
6508
6551
 
@@ -6512,7 +6555,7 @@
6512
6555
 
6513
6556
  <!-- horizontal row separator -->
6514
6557
  <xsl:if test="normalize-space($isDisplayRowSeparator) = 'true'">
6515
- <xsl:if test="(../*[local-name()='note'] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
6558
+ <xsl:if test="(../*[local-name()='note'][not(@type = 'units')] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
6516
6559
  <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
6517
6560
 
6518
6561
  <xsl:call-template name="setBordersTableArray"/>
@@ -7219,7 +7262,20 @@
7219
7262
  <!-- Definition List -->
7220
7263
  <!-- ===================== -->
7221
7264
 
7222
- <xsl:template match="*[local-name()='dl']">
7265
+ <!-- for table auto-layout algorithm -->
7266
+ <xsl:template match="*[local-name()='dl']" priority="2">
7267
+ <xsl:choose>
7268
+ <xsl:when test="$table_only_with_id != '' and @id = $table_only_with_id">
7269
+ <xsl:call-template name="dl"/>
7270
+ </xsl:when>
7271
+ <xsl:when test="$table_only_with_id != ''"><fo:block/><!-- to prevent empty fo:block-container --></xsl:when>
7272
+ <xsl:otherwise>
7273
+ <xsl:call-template name="dl"/>
7274
+ </xsl:otherwise>
7275
+ </xsl:choose>
7276
+ </xsl:template>
7277
+
7278
+ <xsl:template match="*[local-name()='dl']" name="dl">
7223
7279
  <xsl:variable name="isAdded" select="@added"/>
7224
7280
  <xsl:variable name="isDeleted" select="@deleted"/>
7225
7281
  <!-- <dl><xsl:copy-of select="."/></dl> -->
@@ -9148,7 +9204,13 @@
9148
9204
  <xsl:value-of select="$language_current_2"/>
9149
9205
  </xsl:when>
9150
9206
  <xsl:otherwise>
9151
- <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
9207
+ <xsl:variable name="language_current_3" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'])"/>
9208
+ <xsl:choose>
9209
+ <xsl:when test="$language_current_3 != ''">
9210
+ <xsl:value-of select="$language_current_3"/>
9211
+ </xsl:when>
9212
+ <xsl:otherwise>en</xsl:otherwise>
9213
+ </xsl:choose>
9152
9214
  </xsl:otherwise>
9153
9215
  </xsl:choose>
9154
9216
  </xsl:otherwise>
@@ -10016,10 +10078,11 @@
10016
10078
  </xsl:template>
10017
10079
 
10018
10080
  <xsl:template match="*[local-name() = 'image']">
10081
+ <xsl:param name="indent">0</xsl:param>
10019
10082
  <xsl:variable name="isAdded" select="../@added"/>
10020
10083
  <xsl:variable name="isDeleted" select="../@deleted"/>
10021
10084
  <xsl:choose>
10022
- <xsl:when test="ancestor::*[local-name() = 'title'] or not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
10085
+ <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) -->
10023
10086
  <fo:inline padding-left="1mm" padding-right="1mm">
10024
10087
  <xsl:if test="not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
10025
10088
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
@@ -10028,7 +10091,43 @@
10028
10091
  <xsl:variable name="src">
10029
10092
  <xsl:call-template name="image_src"/>
10030
10093
  </xsl:variable>
10031
- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/>
10094
+
10095
+ <xsl:variable name="scale">
10096
+ <xsl:call-template name="getImageScale">
10097
+ <xsl:with-param name="indent" select="$indent"/>
10098
+ </xsl:call-template>
10099
+ </xsl:variable>
10100
+
10101
+ <!-- debug scale='<xsl:value-of select="$scale"/>', indent='<xsl:value-of select="$indent"/>' -->
10102
+
10103
+ <!-- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/> -->
10104
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle">
10105
+
10106
+ <xsl:variable name="width">
10107
+ <xsl:call-template name="setImageWidth"/>
10108
+ </xsl:variable>
10109
+ <xsl:if test="$width != ''">
10110
+ <xsl:attribute name="width"><xsl:value-of select="$width"/></xsl:attribute>
10111
+ </xsl:if>
10112
+ <xsl:variable name="height">
10113
+ <xsl:call-template name="setImageHeight"/>
10114
+ </xsl:variable>
10115
+ <xsl:if test="$height != ''">
10116
+ <xsl:attribute name="height"><xsl:value-of select="$height"/></xsl:attribute>
10117
+ </xsl:if>
10118
+
10119
+ <xsl:if test="$width = '' and $height = ''">
10120
+ <xsl:if test="number($scale) &lt; 100">
10121
+ <xsl:attribute name="content-width"><xsl:value-of select="number($scale)"/>%</xsl:attribute>
10122
+ <!-- <xsl:attribute name="content-width">scale-to-fit</xsl:attribute>
10123
+ <xsl:attribute name="content-height">100%</xsl:attribute>
10124
+ <xsl:attribute name="width">100%</xsl:attribute>
10125
+ <xsl:attribute name="scaling">uniform</xsl:attribute> -->
10126
+ </xsl:if>
10127
+ </xsl:if>
10128
+
10129
+ </fo:external-graphic>
10130
+
10032
10131
  </fo:inline>
10033
10132
  </xsl:when>
10034
10133
  <xsl:otherwise>
@@ -10049,25 +10148,23 @@
10049
10148
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
10050
10149
  <xsl:attribute name="scaling">uniform</xsl:attribute>
10051
10150
 
10052
- <xsl:apply-templates select="." mode="cross_image"/>
10151
+ <xsl:apply-templates select="." mode="cross_image"/>
10053
10152
 
10054
10153
  </fo:instream-foreign-object>
10055
10154
  </xsl:when>
10056
10155
  <xsl:otherwise>
10156
+ <!-- <fo:block>debug block image:
10157
+ <xsl:variable name="scale">
10158
+ <xsl:call-template name="getImageScale">
10159
+ <xsl:with-param name="indent" select="$indent"/>
10160
+ </xsl:call-template>
10161
+ </xsl:variable>
10162
+ <xsl:value-of select="concat('scale=', $scale,', indent=', $indent)"/>
10163
+ </fo:block> -->
10057
10164
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
10058
- <xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
10165
+ <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'])">
10059
10166
 
10060
- <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
10061
- <xsl:attribute name="width">
10062
- <xsl:value-of select="@width"/>
10063
- </xsl:attribute>
10064
- </xsl:if>
10065
-
10066
- <xsl:if test="@height != '' and @height != 'auto'">
10067
- <xsl:attribute name="height">
10068
- <xsl:value-of select="@height"/>
10069
- </xsl:attribute>
10070
- </xsl:if>
10167
+ <xsl:call-template name="setImageWidthHeight"/>
10071
10168
 
10072
10169
  <xsl:choose>
10073
10170
  <xsl:when test="@width != '' and @width != 'auto' and @height != '' and @height != 'auto'">
@@ -10075,24 +10172,18 @@
10075
10172
  </xsl:when>
10076
10173
  <xsl:otherwise>
10077
10174
 
10078
- <xsl:variable name="img_src">
10079
- <xsl:choose>
10080
- <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
10081
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
10082
- </xsl:choose>
10175
+ <xsl:variable name="scale">
10176
+ <xsl:call-template name="getImageScale">
10177
+ <xsl:with-param name="indent" select="$indent"/>
10178
+ </xsl:call-template>
10083
10179
  </xsl:variable>
10084
10180
 
10085
- <xsl:variable name="image_width_effective">
10086
-
10087
- <xsl:value-of select="$width_effective"/>
10088
-
10181
+ <xsl:variable name="scaleRatio">
10182
+ 1
10089
10183
  </xsl:variable>
10090
10184
 
10091
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
10092
10185
  <xsl:if test="number($scale) &lt; 100">
10093
-
10094
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
10095
-
10186
+ <xsl:attribute name="content-width"><xsl:value-of select="number($scale) * number($scaleRatio)"/>%</xsl:attribute>
10096
10187
  </xsl:if>
10097
10188
  </xsl:otherwise>
10098
10189
  </xsl:choose>
@@ -10108,6 +10199,62 @@
10108
10199
  </xsl:choose>
10109
10200
  </xsl:template>
10110
10201
 
10202
+ <xsl:template name="setImageWidth">
10203
+ <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
10204
+ <xsl:value-of select="@width"/>
10205
+ </xsl:if>
10206
+ </xsl:template>
10207
+ <xsl:template name="setImageHeight">
10208
+ <xsl:if test="@height != '' and @height != 'auto'">
10209
+ <xsl:value-of select="@height"/>
10210
+ </xsl:if>
10211
+ </xsl:template>
10212
+ <xsl:template name="setImageWidthHeight">
10213
+ <xsl:variable name="width">
10214
+ <xsl:call-template name="setImageWidth"/>
10215
+ </xsl:variable>
10216
+ <xsl:if test="$width != ''">
10217
+ <xsl:attribute name="width">
10218
+ <xsl:value-of select="$width"/>
10219
+ </xsl:attribute>
10220
+ </xsl:if>
10221
+ <xsl:variable name="height">
10222
+ <xsl:call-template name="setImageHeight"/>
10223
+ </xsl:variable>
10224
+ <xsl:if test="$height != ''">
10225
+ <xsl:attribute name="height">
10226
+ <xsl:value-of select="$height"/>
10227
+ </xsl:attribute>
10228
+ </xsl:if>
10229
+ </xsl:template>
10230
+
10231
+ <xsl:template name="getImageScale">
10232
+ <xsl:param name="indent"/>
10233
+ <xsl:variable name="indent_left">
10234
+ <xsl:choose>
10235
+ <xsl:when test="$indent != ''"><xsl:value-of select="$indent"/></xsl:when>
10236
+ <xsl:otherwise>0</xsl:otherwise>
10237
+ </xsl:choose>
10238
+ </xsl:variable>
10239
+ <xsl:variable name="img_src">
10240
+ <xsl:choose>
10241
+ <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
10242
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
10243
+ </xsl:choose>
10244
+ </xsl:variable>
10245
+
10246
+ <xsl:variable name="image_width_effective">
10247
+
10248
+ <xsl:value-of select="$width_effective - number($indent_left)"/>
10249
+
10250
+ </xsl:variable>
10251
+ <!-- <xsl:message>width_effective=<xsl:value-of select="$width_effective"/></xsl:message>
10252
+ <xsl:message>indent_left=<xsl:value-of select="$indent_left"/></xsl:message>
10253
+ <xsl:message>image_width_effective=<xsl:value-of select="$image_width_effective"/> for <xsl:value-of select="ancestor::ogc:p[1]/@id"/></xsl:message> -->
10254
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
10255
+ <xsl:value-of select="$scale"/>
10256
+ </xsl:template>
10257
+
10111
10258
  <xsl:template name="image_src">
10112
10259
  <xsl:choose>
10113
10260
  <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
@@ -12788,6 +12935,7 @@
12788
12935
  </xsl:template>
12789
12936
 
12790
12937
  <xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
12938
+ <xsl:param name="indent">0</xsl:param>
12791
12939
  <xsl:choose>
12792
12940
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
12793
12941
  <fo:block-container role="SKIP">
@@ -12802,7 +12950,9 @@
12802
12950
 
12803
12951
  <fo:block-container margin-left="0mm" role="SKIP">
12804
12952
  <fo:block>
12805
- <xsl:apply-templates select="." mode="list"/>
12953
+ <xsl:apply-templates select="." mode="list">
12954
+ <xsl:with-param name="indent" select="$indent"/>
12955
+ </xsl:apply-templates>
12806
12956
  </fo:block>
12807
12957
  </fo:block-container>
12808
12958
  </fo:block-container>
@@ -12810,7 +12960,9 @@
12810
12960
  <xsl:otherwise>
12811
12961
 
12812
12962
  <fo:block role="SKIP">
12813
- <xsl:apply-templates select="." mode="list"/>
12963
+ <xsl:apply-templates select="." mode="list">
12964
+ <xsl:with-param name="indent" select="$indent"/>
12965
+ </xsl:apply-templates>
12814
12966
  </fo:block>
12815
12967
 
12816
12968
  </xsl:otherwise>
@@ -12895,6 +13047,13 @@
12895
13047
  </xsl:template>
12896
13048
 
12897
13049
  <xsl:template match="*[local-name()='li']">
13050
+ <xsl:param name="indent">0</xsl:param>
13051
+ <!-- <fo:list-item xsl:use-attribute-sets="list-item-style">
13052
+ <fo:list-item-label end-indent="label-end()"><fo:block>x</fo:block></fo:list-item-label>
13053
+ <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
13054
+ <fo:block>debug li indent=<xsl:value-of select="$indent"/></fo:block>
13055
+ </fo:list-item-body>
13056
+ </fo:list-item> -->
12898
13057
  <fo:list-item xsl:use-attribute-sets="list-item-style">
12899
13058
  <xsl:copy-of select="@id"/>
12900
13059
 
@@ -12919,7 +13078,9 @@
12919
13078
 
12920
13079
  <xsl:call-template name="refine_list-item-body-style"/>
12921
13080
 
12922
- <xsl:apply-templates/>
13081
+ <xsl:apply-templates>
13082
+ <xsl:with-param name="indent" select="$indent"/>
13083
+ </xsl:apply-templates>
12923
13084
 
12924
13085
  <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
12925
13086
 
@@ -15231,6 +15392,4 @@
15231
15392
  </xsl:if>
15232
15393
  </xsl:template>
15233
15394
 
15234
- <!-- update -->
15235
-
15236
15395
  </xsl:stylesheet>
@@ -2,9 +2,6 @@ module IsoDoc
2
2
  module IEEE
3
3
  class WordConvert < IsoDoc::WordConvert
4
4
  def toWord(result, filename, dir, header)
5
- result = from_xhtml(word_cleanup(to_xhtml(result)))
6
- .gsub("-DOUBLE_HYPHEN_ESCAPE-", "--")
7
- @wordstylesheet = wordstylesheet_update
8
5
  ::Html2Doc::IEEE.new(
9
6
  filename: filename,
10
7
  imagedir: @localdir,
@@ -75,9 +75,6 @@ module IsoDoc
75
75
  end
76
76
 
77
77
  def toWord(result, filename, dir, header)
78
- result = from_xhtml(word_cleanup(to_xhtml(result)))
79
- .gsub("-DOUBLE_HYPHEN_ESCAPE-", "--")
80
- @wordstylesheet = wordstylesheet_update
81
78
  ::Html2Doc::IEEE_WP.new(
82
79
  filename: filename,
83
80
  imagedir: @localdir,
@@ -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 IEEE
3
- VERSION = "1.2.6".freeze
3
+ VERSION = "1.2.8".freeze
4
4
  end
5
5
  end
@@ -19,7 +19,7 @@ template:
19
19
  inproceedings: "{{ creatornames }}, “{{ title }},” <em>{{host_title}}</em>, {{place}}, {{extent}}, {{date}}, {{ labels['viewed'] }}_{{date_accessed}}, {% if uri %}{{ uri }}{% else %}{% if doi %}DOI: {{ doi | join: ', ' }}{% endif %}{% endif %} ."
20
20
  inbook: "{{ creatornames }}, “{{ title }},” {{ labels['in'] }} {{ host_creatornames}} ({{ host_role}}) : <em>{{host_title}}</em>, {{place}}: {{publisher}}, {{date}}, {{extent}}, {{ labels['viewed'] }}_{{date_accessed}}, {% if uri %}{{ uri }}{% else %}{% if doi %}DOI: {{ doi | join: ', ' }}{% endif %}{% endif %} ."
21
21
  incollection: inbook
22
- thesis: "{{ creatornames }} , “{{ title }}.” {{ medium | capitalize }}, {{ publisher }}, {{ date }}, {{ labels['viewed'] }}_{{date_accessed}}, {% if uri %}{{ uri }}{% else %}{% if doi %}DOI: {{ doi | join: ', ' }}{% endif %}{% endif %} ."
22
+ thesis: "{{ creatornames }} , “{{ title }},” {{ medium | capitalize }}, {{ publisher }}, {{ date }}, {{ labels['viewed'] }}_{{date_accessed}}, {% if uri %}{{ uri }}{% else %}{% if doi %}DOI: {{ doi | join: ', ' }}{% endif %}{% endif %} ."
23
23
  unpublished: thesis
24
24
  misc: thesis
25
25
  website: thesis
@@ -27,9 +27,7 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  spec.add_dependency "metanorma-standoc", "~> 2.8.4"
29
29
  spec.add_dependency "mnconvert", "~> 1.20"
30
- spec.add_dependency "pubid-ieee"
31
- #spec.add_dependency "pubid-iso", "~> 0.5.3"
32
- #spec.add_dependency "relaton-iso", "~> 1.15.4"
30
+ spec.add_dependency "pubid"
33
31
 
34
32
  spec.add_development_dependency "debug"
35
33
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-ieee
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.6
4
+ version: 1.2.8
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-standoc
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.20'
41
41
  - !ruby/object:Gem::Dependency
42
- name: pubid-ieee
42
+ name: pubid
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="