metanorma-bipm 2.4.6 → 2.4.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -8029,10 +8029,11 @@
8029
8029
  </xsl:template>
8030
8030
 
8031
8031
  <xsl:template match="*[local-name() = 'image']">
8032
+ <xsl:param name="indent">0</xsl:param>
8032
8033
  <xsl:variable name="isAdded" select="../@added"/>
8033
8034
  <xsl:variable name="isDeleted" select="../@deleted"/>
8034
8035
  <xsl:choose>
8035
- <xsl:when test="ancestor::*[local-name() = 'title'] or not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
8036
+ <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) -->
8036
8037
  <fo:inline padding-left="1mm" padding-right="1mm">
8037
8038
  <xsl:if test="not(parent::*[local-name() = 'figure']) or parent::*[local-name() = 'p']">
8038
8039
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
@@ -8041,7 +8042,43 @@
8041
8042
  <xsl:variable name="src">
8042
8043
  <xsl:call-template name="image_src"/>
8043
8044
  </xsl:variable>
8044
- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/>
8045
+
8046
+ <xsl:variable name="scale">
8047
+ <xsl:call-template name="getImageScale">
8048
+ <xsl:with-param name="indent" select="$indent"/>
8049
+ </xsl:call-template>
8050
+ </xsl:variable>
8051
+
8052
+ <!-- debug scale='<xsl:value-of select="$scale"/>', indent='<xsl:value-of select="$indent"/>' -->
8053
+
8054
+ <!-- <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle"/> -->
8055
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" vertical-align="middle">
8056
+
8057
+ <xsl:variable name="width">
8058
+ <xsl:call-template name="setImageWidth"/>
8059
+ </xsl:variable>
8060
+ <xsl:if test="$width != ''">
8061
+ <xsl:attribute name="width"><xsl:value-of select="$width"/></xsl:attribute>
8062
+ </xsl:if>
8063
+ <xsl:variable name="height">
8064
+ <xsl:call-template name="setImageHeight"/>
8065
+ </xsl:variable>
8066
+ <xsl:if test="$height != ''">
8067
+ <xsl:attribute name="height"><xsl:value-of select="$height"/></xsl:attribute>
8068
+ </xsl:if>
8069
+
8070
+ <xsl:if test="$width = '' and $height = ''">
8071
+ <xsl:if test="number($scale) &lt; 100">
8072
+ <xsl:attribute name="content-width"><xsl:value-of select="number($scale)"/>%</xsl:attribute>
8073
+ <!-- <xsl:attribute name="content-width">scale-to-fit</xsl:attribute>
8074
+ <xsl:attribute name="content-height">100%</xsl:attribute>
8075
+ <xsl:attribute name="width">100%</xsl:attribute>
8076
+ <xsl:attribute name="scaling">uniform</xsl:attribute> -->
8077
+ </xsl:if>
8078
+ </xsl:if>
8079
+
8080
+ </fo:external-graphic>
8081
+
8045
8082
  </fo:inline>
8046
8083
  </xsl:when>
8047
8084
  <xsl:otherwise>
@@ -8062,25 +8099,23 @@
8062
8099
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
8063
8100
  <xsl:attribute name="scaling">uniform</xsl:attribute>
8064
8101
 
8065
- <xsl:apply-templates select="." mode="cross_image"/>
8102
+ <xsl:apply-templates select="." mode="cross_image"/>
8066
8103
 
8067
8104
  </fo:instream-foreign-object>
8068
8105
  </xsl:when>
8069
8106
  <xsl:otherwise>
8107
+ <!-- <fo:block>debug block image:
8108
+ <xsl:variable name="scale">
8109
+ <xsl:call-template name="getImageScale">
8110
+ <xsl:with-param name="indent" select="$indent"/>
8111
+ </xsl:call-template>
8112
+ </xsl:variable>
8113
+ <xsl:value-of select="concat('scale=', $scale,', indent=', $indent)"/>
8114
+ </fo:block> -->
8070
8115
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
8071
8116
  <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'])">
8072
8117
 
8073
- <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
8074
- <xsl:attribute name="width">
8075
- <xsl:value-of select="@width"/>
8076
- </xsl:attribute>
8077
- </xsl:if>
8078
-
8079
- <xsl:if test="@height != '' and @height != 'auto'">
8080
- <xsl:attribute name="height">
8081
- <xsl:value-of select="@height"/>
8082
- </xsl:attribute>
8083
- </xsl:if>
8118
+ <xsl:call-template name="setImageWidthHeight"/>
8084
8119
 
8085
8120
  <xsl:choose>
8086
8121
  <xsl:when test="@width != '' and @width != 'auto' and @height != '' and @height != 'auto'">
@@ -8088,24 +8123,18 @@
8088
8123
  </xsl:when>
8089
8124
  <xsl:otherwise>
8090
8125
 
8091
- <xsl:variable name="img_src">
8092
- <xsl:choose>
8093
- <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
8094
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
8095
- </xsl:choose>
8126
+ <xsl:variable name="scale">
8127
+ <xsl:call-template name="getImageScale">
8128
+ <xsl:with-param name="indent" select="$indent"/>
8129
+ </xsl:call-template>
8096
8130
  </xsl:variable>
8097
8131
 
8098
- <xsl:variable name="image_width_effective">
8099
-
8100
- <xsl:value-of select="$width_effective"/>
8101
-
8132
+ <xsl:variable name="scaleRatio">
8133
+ 1
8102
8134
  </xsl:variable>
8103
8135
 
8104
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
8105
8136
  <xsl:if test="number($scale) &lt; 100">
8106
-
8107
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
8108
-
8137
+ <xsl:attribute name="content-width"><xsl:value-of select="number($scale) * number($scaleRatio)"/>%</xsl:attribute>
8109
8138
  </xsl:if>
8110
8139
  </xsl:otherwise>
8111
8140
  </xsl:choose>
@@ -8121,6 +8150,62 @@
8121
8150
  </xsl:choose>
8122
8151
  </xsl:template>
8123
8152
 
8153
+ <xsl:template name="setImageWidth">
8154
+ <xsl:if test="@width != '' and @width != 'auto' and @width != 'text-width' and @width != 'full-page-width' and @width != 'narrow'">
8155
+ <xsl:value-of select="@width"/>
8156
+ </xsl:if>
8157
+ </xsl:template>
8158
+ <xsl:template name="setImageHeight">
8159
+ <xsl:if test="@height != '' and @height != 'auto'">
8160
+ <xsl:value-of select="@height"/>
8161
+ </xsl:if>
8162
+ </xsl:template>
8163
+ <xsl:template name="setImageWidthHeight">
8164
+ <xsl:variable name="width">
8165
+ <xsl:call-template name="setImageWidth"/>
8166
+ </xsl:variable>
8167
+ <xsl:if test="$width != ''">
8168
+ <xsl:attribute name="width">
8169
+ <xsl:value-of select="$width"/>
8170
+ </xsl:attribute>
8171
+ </xsl:if>
8172
+ <xsl:variable name="height">
8173
+ <xsl:call-template name="setImageHeight"/>
8174
+ </xsl:variable>
8175
+ <xsl:if test="$height != ''">
8176
+ <xsl:attribute name="height">
8177
+ <xsl:value-of select="$height"/>
8178
+ </xsl:attribute>
8179
+ </xsl:if>
8180
+ </xsl:template>
8181
+
8182
+ <xsl:template name="getImageScale">
8183
+ <xsl:param name="indent"/>
8184
+ <xsl:variable name="indent_left">
8185
+ <xsl:choose>
8186
+ <xsl:when test="$indent != ''"><xsl:value-of select="$indent"/></xsl:when>
8187
+ <xsl:otherwise>0</xsl:otherwise>
8188
+ </xsl:choose>
8189
+ </xsl:variable>
8190
+ <xsl:variable name="img_src">
8191
+ <xsl:choose>
8192
+ <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
8193
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
8194
+ </xsl:choose>
8195
+ </xsl:variable>
8196
+
8197
+ <xsl:variable name="image_width_effective">
8198
+
8199
+ <xsl:value-of select="$width_effective - number($indent_left)"/>
8200
+
8201
+ </xsl:variable>
8202
+ <!-- <xsl:message>width_effective=<xsl:value-of select="$width_effective"/></xsl:message>
8203
+ <xsl:message>indent_left=<xsl:value-of select="$indent_left"/></xsl:message>
8204
+ <xsl:message>image_width_effective=<xsl:value-of select="$image_width_effective"/> for <xsl:value-of select="ancestor::ogc:p[1]/@id"/></xsl:message> -->
8205
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
8206
+ <xsl:value-of select="$scale"/>
8207
+ </xsl:template>
8208
+
8124
8209
  <xsl:template name="image_src">
8125
8210
  <xsl:choose>
8126
8211
  <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
@@ -10809,6 +10894,7 @@
10809
10894
  </xsl:template>
10810
10895
 
10811
10896
  <xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
10897
+ <xsl:param name="indent">0</xsl:param>
10812
10898
  <xsl:choose>
10813
10899
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
10814
10900
  <fo:block-container role="SKIP">
@@ -10823,7 +10909,9 @@
10823
10909
 
10824
10910
  <fo:block-container margin-left="0mm" role="SKIP">
10825
10911
  <fo:block>
10826
- <xsl:apply-templates select="." mode="list"/>
10912
+ <xsl:apply-templates select="." mode="list">
10913
+ <xsl:with-param name="indent" select="$indent"/>
10914
+ </xsl:apply-templates>
10827
10915
  </fo:block>
10828
10916
  </fo:block-container>
10829
10917
  </fo:block-container>
@@ -10831,7 +10919,9 @@
10831
10919
  <xsl:otherwise>
10832
10920
 
10833
10921
  <fo:block role="SKIP">
10834
- <xsl:apply-templates select="." mode="list"/>
10922
+ <xsl:apply-templates select="." mode="list">
10923
+ <xsl:with-param name="indent" select="$indent"/>
10924
+ </xsl:apply-templates>
10835
10925
  </fo:block>
10836
10926
 
10837
10927
  </xsl:otherwise>
@@ -10916,6 +11006,13 @@
10916
11006
  </xsl:template>
10917
11007
 
10918
11008
  <xsl:template match="*[local-name()='li']">
11009
+ <xsl:param name="indent">0</xsl:param>
11010
+ <!-- <fo:list-item xsl:use-attribute-sets="list-item-style">
11011
+ <fo:list-item-label end-indent="label-end()"><fo:block>x</fo:block></fo:list-item-label>
11012
+ <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
11013
+ <fo:block>debug li indent=<xsl:value-of select="$indent"/></fo:block>
11014
+ </fo:list-item-body>
11015
+ </fo:list-item> -->
10919
11016
  <fo:list-item xsl:use-attribute-sets="list-item-style">
10920
11017
  <xsl:copy-of select="@id"/>
10921
11018
 
@@ -10940,7 +11037,9 @@
10940
11037
 
10941
11038
  <xsl:call-template name="refine_list-item-body-style"/>
10942
11039
 
10943
- <xsl:apply-templates/>
11040
+ <xsl:apply-templates>
11041
+ <xsl:with-param name="indent" select="$indent"/>
11042
+ </xsl:apply-templates>
10944
11043
 
10945
11044
  <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
10946
11045
 
@@ -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 BIPM
3
- VERSION = "2.4.6".freeze
3
+ VERSION = "2.4.7".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-bipm
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.6
4
+ version: 2.4.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-04-08 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