metanorma-un 0.12.5 → 0.12.6

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: 2ea1d0a3c64d0112d31b61f1ea0bccf373a6b56140c824dba7fa8013d30c50c9
4
- data.tar.gz: bba26136fc35c6f240f631bf70996c1e36b510ad555421e3c07a1221821680c0
3
+ metadata.gz: b4afd0f6a635e8ed3383d14ddd21737aafbb61f4d5b1e47eb683936f82d5fc37
4
+ data.tar.gz: 4d11b23a6f99532384d12355db81fad52c020e1ab8495d0bb18313af8398e98b
5
5
  SHA512:
6
- metadata.gz: cb9884d76badbeb5d8f61e60dbe379ec1c1580fb1758ec2649ed36c6cbd8760b7533536dd129c53f9d9c6aa27c101c90dbd70d5c248070ad81eb994721aea4dc
7
- data.tar.gz: c98cfb6f6fe725362740900f1dbabe87b8d88197db2740559f31ed1d47c2fca79a0853749195a8e48a89a9540b215d7cf0f9e3b628f02e01b66592b89b165abe
6
+ metadata.gz: 7a5bdeb035b8f335eb6637d69664926ffa42d74c5d7aabddda3e403e418e996c6efe44c1945ea8d87f6cddcab52257585e540e9eaffedc371c726ea21312e457
7
+ data.tar.gz: fbe220b5d596c020f3f16d03a67739bf9c5fed3b35617026a442ec52d0ccfb7afe1ef4d86a12c1d2c9d9f40b863b430f18d10ff1f6a4645a949e69f879cd5153
@@ -974,6 +974,7 @@
974
974
  <xsl:variable name="zero_width_space">​</xsl:variable>
975
975
  <xsl:variable name="hair_space"> </xsl:variable>
976
976
  <xsl:variable name="en_dash">–</xsl:variable>
977
+ <xsl:variable name="em_dash">—</xsl:variable>
977
978
 
978
979
  <xsl:template name="getTitle">
979
980
  <xsl:param name="name"/>
@@ -1281,6 +1282,10 @@
1281
1282
 
1282
1283
  </xsl:attribute-set> <!-- example-name-style -->
1283
1284
 
1285
+ <xsl:template name="refine_example-name-style">
1286
+
1287
+ </xsl:template>
1288
+
1284
1289
  <xsl:attribute-set name="example-p-style">
1285
1290
 
1286
1291
  <xsl:attribute name="font-size">11pt</xsl:attribute>
@@ -1303,6 +1308,10 @@
1303
1308
 
1304
1309
  </xsl:attribute-set> <!-- termexample-name-style -->
1305
1310
 
1311
+ <xsl:template name="refine_termexample-name-style">
1312
+
1313
+ </xsl:template>
1314
+
1306
1315
  <!-- ========================== -->
1307
1316
  <!-- Table styles -->
1308
1317
  <!-- ========================== -->
@@ -1489,6 +1498,10 @@
1489
1498
 
1490
1499
  </xsl:attribute-set> <!-- table-fn-style -->
1491
1500
 
1501
+ <xsl:template name="refine_table-fn-style">
1502
+
1503
+ </xsl:template>
1504
+
1492
1505
  <xsl:attribute-set name="table-fn-number-style">
1493
1506
  <xsl:attribute name="font-size">80%</xsl:attribute>
1494
1507
  <xsl:attribute name="padding-right">5mm</xsl:attribute>
@@ -1497,6 +1510,10 @@
1497
1510
 
1498
1511
  </xsl:attribute-set> <!-- table-fn-number-style -->
1499
1512
 
1513
+ <xsl:template name="refine_table-fn-number-style">
1514
+
1515
+ </xsl:template>
1516
+
1500
1517
  <xsl:attribute-set name="fn-container-body-style">
1501
1518
  <xsl:attribute name="text-indent">0</xsl:attribute>
1502
1519
  <xsl:attribute name="start-indent">0</xsl:attribute>
@@ -3841,8 +3858,9 @@
3841
3858
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3842
3859
 
3843
3860
  <fo:block xsl:use-attribute-sets="table-fn-style">
3844
-
3861
+ <xsl:call-template name="refine_table-fn-style"/>
3845
3862
  <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
3863
+ <xsl:call-template name="refine_table-fn-number-style"/>
3846
3864
 
3847
3865
  <xsl:value-of select="@reference"/>
3848
3866
 
@@ -4980,11 +4998,16 @@
4980
4998
  <xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
4981
4999
  <!-- <xsl:variable name="text" select="normalize-space(.)"/> --> <!-- https://github.com/metanorma/metanorma-iso/issues/1115 -->
4982
5000
  <xsl:variable name="text" select="."/>
4983
- <fo:inline font-size="75%" role="SKIP">
5001
+ <xsl:variable name="ratio_">
5002
+ 0.75
5003
+ </xsl:variable>
5004
+ <xsl:variable name="ratio" select="number(normalize-space($ratio_))"/>
5005
+ <fo:inline font-size="{$ratio * 100}%" role="SKIP">
4984
5006
  <xsl:if test="string-length($text) &gt; 0">
4985
5007
  <xsl:variable name="smallCapsText">
4986
5008
  <xsl:call-template name="recursiveSmallCaps">
4987
5009
  <xsl:with-param name="text" select="$text"/>
5010
+ <xsl:with-param name="ratio" select="$ratio"/>
4988
5011
  </xsl:call-template>
4989
5012
  </xsl:variable>
4990
5013
  <!-- merge neighboring fo:inline -->
@@ -5021,12 +5044,13 @@
5021
5044
 
5022
5045
  <xsl:template name="recursiveSmallCaps">
5023
5046
  <xsl:param name="text"/>
5047
+ <xsl:param name="ratio"/>
5024
5048
  <xsl:variable name="char" select="substring($text,1,1)"/>
5025
5049
  <!-- <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/> -->
5026
5050
  <xsl:variable name="upperCase" select="java:toUpperCase(java:java.lang.String.new($char))"/>
5027
5051
  <xsl:choose>
5028
5052
  <xsl:when test="$char=$upperCase">
5029
- <fo:inline font-size="{100 div 0.75}%" role="SKIP">
5053
+ <fo:inline font-size="{100 div $ratio}%" role="SKIP">
5030
5054
  <xsl:value-of select="$upperCase"/>
5031
5055
  </fo:inline>
5032
5056
  </xsl:when>
@@ -5037,6 +5061,7 @@
5037
5061
  <xsl:if test="string-length($text) &gt; 1">
5038
5062
  <xsl:call-template name="recursiveSmallCaps">
5039
5063
  <xsl:with-param name="text" select="substring($text,2)"/>
5064
+ <xsl:with-param name="ratio" select="$ratio"/>
5040
5065
  </xsl:call-template>
5041
5066
  </xsl:if>
5042
5067
  </xsl:template>
@@ -5073,6 +5098,9 @@
5073
5098
  <xsl:if test="$key = 'font-family' or $key = 'font-size' or $key = 'color'">
5074
5099
  <style name="{$key}"><xsl:value-of select="$value"/></style>
5075
5100
  </xsl:if>
5101
+ <xsl:if test="$key = 'text-indent'">
5102
+ <style name="padding-left"><xsl:value-of select="$value"/></style>
5103
+ </xsl:if>
5076
5104
  </xsl:for-each>
5077
5105
  </xsl:variable>
5078
5106
  <xsl:variable name="styles" select="xalan:nodeset($styles_)"/>
@@ -6475,6 +6503,11 @@
6475
6503
  </xsl:call-template>
6476
6504
  </xsl:template>
6477
6505
 
6506
+ <!-- command between two xref points to non-standard bibitem -->
6507
+ <xsl:template match="text()[. = ','][preceding-sibling::node()[1][local-name() = 'sup'][*[local-name() = 'xref'][@type = 'footnote']] and following-sibling::node()[1][local-name() = 'sup'][*[local-name() = 'xref'][@type = 'footnote']]]">
6508
+ <xsl:value-of select="."/>
6509
+ </xsl:template>
6510
+
6478
6511
  <!-- ====== -->
6479
6512
  <!-- formula -->
6480
6513
  <!-- ====== -->
@@ -7189,6 +7222,8 @@
7189
7222
  </xsl:attribute>
7190
7223
  </xsl:template>
7191
7224
 
7225
+ <xsl:variable name="regex_starts_with_digit">^[0-9].*</xsl:variable>
7226
+
7192
7227
  <xsl:template match="*[local-name() = 'svg'][not(@width and @height)]" mode="svg_update">
7193
7228
  <xsl:copy>
7194
7229
  <xsl:apply-templates select="@*" mode="svg_update"/>
@@ -7207,7 +7242,8 @@
7207
7242
 
7208
7243
  <xsl:attribute name="width">
7209
7244
  <xsl:choose>
7210
- <xsl:when test="$parent_image_width != '' and $parent_image_width != 'auto'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7245
+ <!-- width is non 'auto', 'text-width', 'full-page-width' or 'narrow' -->
7246
+ <xsl:when test="$parent_image_width != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_width), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7211
7247
  <xsl:when test="$width != ''">
7212
7248
  <xsl:value-of select="round($width)"/>
7213
7249
  </xsl:when>
@@ -7216,7 +7252,8 @@
7216
7252
  </xsl:attribute>
7217
7253
  <xsl:attribute name="height">
7218
7254
  <xsl:choose>
7219
- <xsl:when test="$parent_image_height != '' and $parent_image_height != 'auto'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7255
+ <!-- height non 'auto', 'text-width', 'full-page-width' or 'narrow' -->
7256
+ <xsl:when test="$parent_image_height != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_height), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7220
7257
  <xsl:when test="$height != ''">
7221
7258
  <xsl:value-of select="round($height)"/>
7222
7259
  </xsl:when>
@@ -7233,7 +7270,7 @@
7233
7270
  <xsl:variable name="parent_image_width" select="normalize-space(ancestor::*[2][local-name() = 'image']/@width)"/>
7234
7271
  <xsl:attribute name="width">
7235
7272
  <xsl:choose>
7236
- <xsl:when test="$parent_image_width != '' and $parent_image_width != 'auto'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7273
+ <xsl:when test="$parent_image_width != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_width), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7237
7274
  <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
7238
7275
  </xsl:choose>
7239
7276
  </xsl:attribute>
@@ -7244,7 +7281,7 @@
7244
7281
  <xsl:variable name="parent_image_height" select="normalize-space(ancestor::*[2][local-name() = 'image']/@height)"/>
7245
7282
  <xsl:attribute name="height">
7246
7283
  <xsl:choose>
7247
- <xsl:when test="$parent_image_height != '' and $parent_image_height != 'auto'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7284
+ <xsl:when test="$parent_image_height != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_height), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7248
7285
  <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
7249
7286
  </xsl:choose>
7250
7287
  </xsl:attribute>
@@ -8706,6 +8743,7 @@
8706
8743
  <xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']">
8707
8744
  <xsl:if test="normalize-space() != ''">
8708
8745
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
8746
+ <xsl:call-template name="refine_termexample-name-style"/>
8709
8747
  <xsl:apply-templates/>
8710
8748
  </fo:inline>
8711
8749
  </xsl:if>
@@ -8856,6 +8894,7 @@
8856
8894
  </xsl:when>
8857
8895
  <xsl:otherwise>
8858
8896
  <fo:inline xsl:use-attribute-sets="example-name-style">
8897
+ <xsl:call-template name="refine_example-name-style"/>
8859
8898
  <xsl:apply-templates/>
8860
8899
  </fo:inline>
8861
8900
  </xsl:otherwise>
@@ -10067,6 +10106,7 @@
10067
10106
  <xsl:template match="*[local-name() = 'references'][@normative='true']/*[local-name() = 'bibitem']" name="bibitem" priority="2">
10068
10107
 
10069
10108
  <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-normative-style">
10109
+
10070
10110
  <xsl:call-template name="processBibitem"/>
10071
10111
  </fo:block>
10072
10112
 
@@ -10087,6 +10127,7 @@
10087
10127
  <xsl:when test="@hidden = 'true'"><!-- skip --></xsl:when>
10088
10128
  <xsl:otherwise>
10089
10129
  <fo:list-item id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-item-style">
10130
+
10090
10131
  <fo:list-item-label end-indent="label-end()">
10091
10132
  <fo:block role="SKIP">
10092
10133
  <fo:inline role="SKIP">
@@ -11858,4 +11899,6 @@
11858
11899
  </xsl:if>
11859
11900
  </xsl:template>
11860
11901
 
11902
+ <!-- update -->
11903
+
11861
11904
  </xsl:stylesheet>
@@ -974,6 +974,7 @@
974
974
  <xsl:variable name="zero_width_space">​</xsl:variable>
975
975
  <xsl:variable name="hair_space"> </xsl:variable>
976
976
  <xsl:variable name="en_dash">–</xsl:variable>
977
+ <xsl:variable name="em_dash">—</xsl:variable>
977
978
 
978
979
  <xsl:template name="getTitle">
979
980
  <xsl:param name="name"/>
@@ -1281,6 +1282,10 @@
1281
1282
 
1282
1283
  </xsl:attribute-set> <!-- example-name-style -->
1283
1284
 
1285
+ <xsl:template name="refine_example-name-style">
1286
+
1287
+ </xsl:template>
1288
+
1284
1289
  <xsl:attribute-set name="example-p-style">
1285
1290
 
1286
1291
  <xsl:attribute name="font-size">11pt</xsl:attribute>
@@ -1303,6 +1308,10 @@
1303
1308
 
1304
1309
  </xsl:attribute-set> <!-- termexample-name-style -->
1305
1310
 
1311
+ <xsl:template name="refine_termexample-name-style">
1312
+
1313
+ </xsl:template>
1314
+
1306
1315
  <!-- ========================== -->
1307
1316
  <!-- Table styles -->
1308
1317
  <!-- ========================== -->
@@ -1489,6 +1498,10 @@
1489
1498
 
1490
1499
  </xsl:attribute-set> <!-- table-fn-style -->
1491
1500
 
1501
+ <xsl:template name="refine_table-fn-style">
1502
+
1503
+ </xsl:template>
1504
+
1492
1505
  <xsl:attribute-set name="table-fn-number-style">
1493
1506
  <xsl:attribute name="font-size">80%</xsl:attribute>
1494
1507
  <xsl:attribute name="padding-right">5mm</xsl:attribute>
@@ -1497,6 +1510,10 @@
1497
1510
 
1498
1511
  </xsl:attribute-set> <!-- table-fn-number-style -->
1499
1512
 
1513
+ <xsl:template name="refine_table-fn-number-style">
1514
+
1515
+ </xsl:template>
1516
+
1500
1517
  <xsl:attribute-set name="fn-container-body-style">
1501
1518
  <xsl:attribute name="text-indent">0</xsl:attribute>
1502
1519
  <xsl:attribute name="start-indent">0</xsl:attribute>
@@ -3841,8 +3858,9 @@
3841
3858
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3842
3859
 
3843
3860
  <fo:block xsl:use-attribute-sets="table-fn-style">
3844
-
3861
+ <xsl:call-template name="refine_table-fn-style"/>
3845
3862
  <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
3863
+ <xsl:call-template name="refine_table-fn-number-style"/>
3846
3864
 
3847
3865
  <xsl:value-of select="@reference"/>
3848
3866
 
@@ -4980,11 +4998,16 @@
4980
4998
  <xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
4981
4999
  <!-- <xsl:variable name="text" select="normalize-space(.)"/> --> <!-- https://github.com/metanorma/metanorma-iso/issues/1115 -->
4982
5000
  <xsl:variable name="text" select="."/>
4983
- <fo:inline font-size="75%" role="SKIP">
5001
+ <xsl:variable name="ratio_">
5002
+ 0.75
5003
+ </xsl:variable>
5004
+ <xsl:variable name="ratio" select="number(normalize-space($ratio_))"/>
5005
+ <fo:inline font-size="{$ratio * 100}%" role="SKIP">
4984
5006
  <xsl:if test="string-length($text) &gt; 0">
4985
5007
  <xsl:variable name="smallCapsText">
4986
5008
  <xsl:call-template name="recursiveSmallCaps">
4987
5009
  <xsl:with-param name="text" select="$text"/>
5010
+ <xsl:with-param name="ratio" select="$ratio"/>
4988
5011
  </xsl:call-template>
4989
5012
  </xsl:variable>
4990
5013
  <!-- merge neighboring fo:inline -->
@@ -5021,12 +5044,13 @@
5021
5044
 
5022
5045
  <xsl:template name="recursiveSmallCaps">
5023
5046
  <xsl:param name="text"/>
5047
+ <xsl:param name="ratio"/>
5024
5048
  <xsl:variable name="char" select="substring($text,1,1)"/>
5025
5049
  <!-- <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/> -->
5026
5050
  <xsl:variable name="upperCase" select="java:toUpperCase(java:java.lang.String.new($char))"/>
5027
5051
  <xsl:choose>
5028
5052
  <xsl:when test="$char=$upperCase">
5029
- <fo:inline font-size="{100 div 0.75}%" role="SKIP">
5053
+ <fo:inline font-size="{100 div $ratio}%" role="SKIP">
5030
5054
  <xsl:value-of select="$upperCase"/>
5031
5055
  </fo:inline>
5032
5056
  </xsl:when>
@@ -5037,6 +5061,7 @@
5037
5061
  <xsl:if test="string-length($text) &gt; 1">
5038
5062
  <xsl:call-template name="recursiveSmallCaps">
5039
5063
  <xsl:with-param name="text" select="substring($text,2)"/>
5064
+ <xsl:with-param name="ratio" select="$ratio"/>
5040
5065
  </xsl:call-template>
5041
5066
  </xsl:if>
5042
5067
  </xsl:template>
@@ -5073,6 +5098,9 @@
5073
5098
  <xsl:if test="$key = 'font-family' or $key = 'font-size' or $key = 'color'">
5074
5099
  <style name="{$key}"><xsl:value-of select="$value"/></style>
5075
5100
  </xsl:if>
5101
+ <xsl:if test="$key = 'text-indent'">
5102
+ <style name="padding-left"><xsl:value-of select="$value"/></style>
5103
+ </xsl:if>
5076
5104
  </xsl:for-each>
5077
5105
  </xsl:variable>
5078
5106
  <xsl:variable name="styles" select="xalan:nodeset($styles_)"/>
@@ -6475,6 +6503,11 @@
6475
6503
  </xsl:call-template>
6476
6504
  </xsl:template>
6477
6505
 
6506
+ <!-- command between two xref points to non-standard bibitem -->
6507
+ <xsl:template match="text()[. = ','][preceding-sibling::node()[1][local-name() = 'sup'][*[local-name() = 'xref'][@type = 'footnote']] and following-sibling::node()[1][local-name() = 'sup'][*[local-name() = 'xref'][@type = 'footnote']]]">
6508
+ <xsl:value-of select="."/>
6509
+ </xsl:template>
6510
+
6478
6511
  <!-- ====== -->
6479
6512
  <!-- formula -->
6480
6513
  <!-- ====== -->
@@ -7189,6 +7222,8 @@
7189
7222
  </xsl:attribute>
7190
7223
  </xsl:template>
7191
7224
 
7225
+ <xsl:variable name="regex_starts_with_digit">^[0-9].*</xsl:variable>
7226
+
7192
7227
  <xsl:template match="*[local-name() = 'svg'][not(@width and @height)]" mode="svg_update">
7193
7228
  <xsl:copy>
7194
7229
  <xsl:apply-templates select="@*" mode="svg_update"/>
@@ -7207,7 +7242,8 @@
7207
7242
 
7208
7243
  <xsl:attribute name="width">
7209
7244
  <xsl:choose>
7210
- <xsl:when test="$parent_image_width != '' and $parent_image_width != 'auto'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7245
+ <!-- width is non 'auto', 'text-width', 'full-page-width' or 'narrow' -->
7246
+ <xsl:when test="$parent_image_width != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_width), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7211
7247
  <xsl:when test="$width != ''">
7212
7248
  <xsl:value-of select="round($width)"/>
7213
7249
  </xsl:when>
@@ -7216,7 +7252,8 @@
7216
7252
  </xsl:attribute>
7217
7253
  <xsl:attribute name="height">
7218
7254
  <xsl:choose>
7219
- <xsl:when test="$parent_image_height != '' and $parent_image_height != 'auto'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7255
+ <!-- height non 'auto', 'text-width', 'full-page-width' or 'narrow' -->
7256
+ <xsl:when test="$parent_image_height != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_height), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7220
7257
  <xsl:when test="$height != ''">
7221
7258
  <xsl:value-of select="round($height)"/>
7222
7259
  </xsl:when>
@@ -7233,7 +7270,7 @@
7233
7270
  <xsl:variable name="parent_image_width" select="normalize-space(ancestor::*[2][local-name() = 'image']/@width)"/>
7234
7271
  <xsl:attribute name="width">
7235
7272
  <xsl:choose>
7236
- <xsl:when test="$parent_image_width != '' and $parent_image_width != 'auto'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7273
+ <xsl:when test="$parent_image_width != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_width), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7237
7274
  <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
7238
7275
  </xsl:choose>
7239
7276
  </xsl:attribute>
@@ -7244,7 +7281,7 @@
7244
7281
  <xsl:variable name="parent_image_height" select="normalize-space(ancestor::*[2][local-name() = 'image']/@height)"/>
7245
7282
  <xsl:attribute name="height">
7246
7283
  <xsl:choose>
7247
- <xsl:when test="$parent_image_height != '' and $parent_image_height != 'auto'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7284
+ <xsl:when test="$parent_image_height != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_height), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7248
7285
  <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
7249
7286
  </xsl:choose>
7250
7287
  </xsl:attribute>
@@ -8706,6 +8743,7 @@
8706
8743
  <xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']">
8707
8744
  <xsl:if test="normalize-space() != ''">
8708
8745
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
8746
+ <xsl:call-template name="refine_termexample-name-style"/>
8709
8747
  <xsl:apply-templates/>
8710
8748
  </fo:inline>
8711
8749
  </xsl:if>
@@ -8856,6 +8894,7 @@
8856
8894
  </xsl:when>
8857
8895
  <xsl:otherwise>
8858
8896
  <fo:inline xsl:use-attribute-sets="example-name-style">
8897
+ <xsl:call-template name="refine_example-name-style"/>
8859
8898
  <xsl:apply-templates/>
8860
8899
  </fo:inline>
8861
8900
  </xsl:otherwise>
@@ -10067,6 +10106,7 @@
10067
10106
  <xsl:template match="*[local-name() = 'references'][@normative='true']/*[local-name() = 'bibitem']" name="bibitem" priority="2">
10068
10107
 
10069
10108
  <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-normative-style">
10109
+
10070
10110
  <xsl:call-template name="processBibitem"/>
10071
10111
  </fo:block>
10072
10112
 
@@ -10087,6 +10127,7 @@
10087
10127
  <xsl:when test="@hidden = 'true'"><!-- skip --></xsl:when>
10088
10128
  <xsl:otherwise>
10089
10129
  <fo:list-item id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-item-style">
10130
+
10090
10131
  <fo:list-item-label end-indent="label-end()">
10091
10132
  <fo:block role="SKIP">
10092
10133
  <fo:inline role="SKIP">
@@ -11858,4 +11899,6 @@
11858
11899
  </xsl:if>
11859
11900
  </xsl:template>
11860
11901
 
11902
+ <!-- update -->
11903
+
11861
11904
  </xsl:stylesheet>
@@ -1080,6 +1080,7 @@
1080
1080
  <xsl:variable name="zero_width_space">​</xsl:variable>
1081
1081
  <xsl:variable name="hair_space"> </xsl:variable>
1082
1082
  <xsl:variable name="en_dash">–</xsl:variable>
1083
+ <xsl:variable name="em_dash">—</xsl:variable>
1083
1084
 
1084
1085
  <xsl:template name="getTitle">
1085
1086
  <xsl:param name="name"/>
@@ -1387,6 +1388,10 @@
1387
1388
 
1388
1389
  </xsl:attribute-set> <!-- example-name-style -->
1389
1390
 
1391
+ <xsl:template name="refine_example-name-style">
1392
+
1393
+ </xsl:template>
1394
+
1390
1395
  <xsl:attribute-set name="example-p-style">
1391
1396
 
1392
1397
  <xsl:attribute name="font-size">11pt</xsl:attribute>
@@ -1409,6 +1414,10 @@
1409
1414
 
1410
1415
  </xsl:attribute-set> <!-- termexample-name-style -->
1411
1416
 
1417
+ <xsl:template name="refine_termexample-name-style">
1418
+
1419
+ </xsl:template>
1420
+
1412
1421
  <!-- ========================== -->
1413
1422
  <!-- Table styles -->
1414
1423
  <!-- ========================== -->
@@ -1609,6 +1618,10 @@
1609
1618
 
1610
1619
  </xsl:attribute-set> <!-- table-fn-style -->
1611
1620
 
1621
+ <xsl:template name="refine_table-fn-style">
1622
+
1623
+ </xsl:template>
1624
+
1612
1625
  <xsl:attribute-set name="table-fn-number-style">
1613
1626
  <xsl:attribute name="font-size">80%</xsl:attribute>
1614
1627
  <xsl:attribute name="padding-right">5mm</xsl:attribute>
@@ -1617,6 +1630,10 @@
1617
1630
 
1618
1631
  </xsl:attribute-set> <!-- table-fn-number-style -->
1619
1632
 
1633
+ <xsl:template name="refine_table-fn-number-style">
1634
+
1635
+ </xsl:template>
1636
+
1620
1637
  <xsl:attribute-set name="fn-container-body-style">
1621
1638
  <xsl:attribute name="text-indent">0</xsl:attribute>
1622
1639
  <xsl:attribute name="start-indent">0</xsl:attribute>
@@ -3968,8 +3985,9 @@
3968
3985
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3969
3986
 
3970
3987
  <fo:block xsl:use-attribute-sets="table-fn-style">
3971
-
3988
+ <xsl:call-template name="refine_table-fn-style"/>
3972
3989
  <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
3990
+ <xsl:call-template name="refine_table-fn-number-style"/>
3973
3991
 
3974
3992
  <xsl:value-of select="@reference"/>
3975
3993
 
@@ -5107,11 +5125,16 @@
5107
5125
  <xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
5108
5126
  <!-- <xsl:variable name="text" select="normalize-space(.)"/> --> <!-- https://github.com/metanorma/metanorma-iso/issues/1115 -->
5109
5127
  <xsl:variable name="text" select="."/>
5110
- <fo:inline font-size="75%" role="SKIP">
5128
+ <xsl:variable name="ratio_">
5129
+ 0.75
5130
+ </xsl:variable>
5131
+ <xsl:variable name="ratio" select="number(normalize-space($ratio_))"/>
5132
+ <fo:inline font-size="{$ratio * 100}%" role="SKIP">
5111
5133
  <xsl:if test="string-length($text) &gt; 0">
5112
5134
  <xsl:variable name="smallCapsText">
5113
5135
  <xsl:call-template name="recursiveSmallCaps">
5114
5136
  <xsl:with-param name="text" select="$text"/>
5137
+ <xsl:with-param name="ratio" select="$ratio"/>
5115
5138
  </xsl:call-template>
5116
5139
  </xsl:variable>
5117
5140
  <!-- merge neighboring fo:inline -->
@@ -5148,12 +5171,13 @@
5148
5171
 
5149
5172
  <xsl:template name="recursiveSmallCaps">
5150
5173
  <xsl:param name="text"/>
5174
+ <xsl:param name="ratio"/>
5151
5175
  <xsl:variable name="char" select="substring($text,1,1)"/>
5152
5176
  <!-- <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/> -->
5153
5177
  <xsl:variable name="upperCase" select="java:toUpperCase(java:java.lang.String.new($char))"/>
5154
5178
  <xsl:choose>
5155
5179
  <xsl:when test="$char=$upperCase">
5156
- <fo:inline font-size="{100 div 0.75}%" role="SKIP">
5180
+ <fo:inline font-size="{100 div $ratio}%" role="SKIP">
5157
5181
  <xsl:value-of select="$upperCase"/>
5158
5182
  </fo:inline>
5159
5183
  </xsl:when>
@@ -5164,6 +5188,7 @@
5164
5188
  <xsl:if test="string-length($text) &gt; 1">
5165
5189
  <xsl:call-template name="recursiveSmallCaps">
5166
5190
  <xsl:with-param name="text" select="substring($text,2)"/>
5191
+ <xsl:with-param name="ratio" select="$ratio"/>
5167
5192
  </xsl:call-template>
5168
5193
  </xsl:if>
5169
5194
  </xsl:template>
@@ -5200,6 +5225,9 @@
5200
5225
  <xsl:if test="$key = 'font-family' or $key = 'font-size' or $key = 'color'">
5201
5226
  <style name="{$key}"><xsl:value-of select="$value"/></style>
5202
5227
  </xsl:if>
5228
+ <xsl:if test="$key = 'text-indent'">
5229
+ <style name="padding-left"><xsl:value-of select="$value"/></style>
5230
+ </xsl:if>
5203
5231
  </xsl:for-each>
5204
5232
  </xsl:variable>
5205
5233
  <xsl:variable name="styles" select="xalan:nodeset($styles_)"/>
@@ -6602,6 +6630,11 @@
6602
6630
  </xsl:call-template>
6603
6631
  </xsl:template>
6604
6632
 
6633
+ <!-- command between two xref points to non-standard bibitem -->
6634
+ <xsl:template match="text()[. = ','][preceding-sibling::node()[1][local-name() = 'sup'][*[local-name() = 'xref'][@type = 'footnote']] and following-sibling::node()[1][local-name() = 'sup'][*[local-name() = 'xref'][@type = 'footnote']]]">
6635
+ <xsl:value-of select="."/>
6636
+ </xsl:template>
6637
+
6605
6638
  <!-- ====== -->
6606
6639
  <!-- formula -->
6607
6640
  <!-- ====== -->
@@ -7316,6 +7349,8 @@
7316
7349
  </xsl:attribute>
7317
7350
  </xsl:template>
7318
7351
 
7352
+ <xsl:variable name="regex_starts_with_digit">^[0-9].*</xsl:variable>
7353
+
7319
7354
  <xsl:template match="*[local-name() = 'svg'][not(@width and @height)]" mode="svg_update">
7320
7355
  <xsl:copy>
7321
7356
  <xsl:apply-templates select="@*" mode="svg_update"/>
@@ -7334,7 +7369,8 @@
7334
7369
 
7335
7370
  <xsl:attribute name="width">
7336
7371
  <xsl:choose>
7337
- <xsl:when test="$parent_image_width != '' and $parent_image_width != 'auto'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7372
+ <!-- width is non 'auto', 'text-width', 'full-page-width' or 'narrow' -->
7373
+ <xsl:when test="$parent_image_width != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_width), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7338
7374
  <xsl:when test="$width != ''">
7339
7375
  <xsl:value-of select="round($width)"/>
7340
7376
  </xsl:when>
@@ -7343,7 +7379,8 @@
7343
7379
  </xsl:attribute>
7344
7380
  <xsl:attribute name="height">
7345
7381
  <xsl:choose>
7346
- <xsl:when test="$parent_image_height != '' and $parent_image_height != 'auto'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7382
+ <!-- height non 'auto', 'text-width', 'full-page-width' or 'narrow' -->
7383
+ <xsl:when test="$parent_image_height != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_height), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7347
7384
  <xsl:when test="$height != ''">
7348
7385
  <xsl:value-of select="round($height)"/>
7349
7386
  </xsl:when>
@@ -7360,7 +7397,7 @@
7360
7397
  <xsl:variable name="parent_image_width" select="normalize-space(ancestor::*[2][local-name() = 'image']/@width)"/>
7361
7398
  <xsl:attribute name="width">
7362
7399
  <xsl:choose>
7363
- <xsl:when test="$parent_image_width != '' and $parent_image_width != 'auto'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7400
+ <xsl:when test="$parent_image_width != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_width), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_width"/></xsl:when>
7364
7401
  <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
7365
7402
  </xsl:choose>
7366
7403
  </xsl:attribute>
@@ -7371,7 +7408,7 @@
7371
7408
  <xsl:variable name="parent_image_height" select="normalize-space(ancestor::*[2][local-name() = 'image']/@height)"/>
7372
7409
  <xsl:attribute name="height">
7373
7410
  <xsl:choose>
7374
- <xsl:when test="$parent_image_height != '' and $parent_image_height != 'auto'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7411
+ <xsl:when test="$parent_image_height != '' and normalize-space(java:matches(java:java.lang.String.new($parent_image_height), $regex_starts_with_digit)) = 'true'"><xsl:value-of select="$parent_image_height"/></xsl:when>
7375
7412
  <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
7376
7413
  </xsl:choose>
7377
7414
  </xsl:attribute>
@@ -8833,6 +8870,7 @@
8833
8870
  <xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']">
8834
8871
  <xsl:if test="normalize-space() != ''">
8835
8872
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
8873
+ <xsl:call-template name="refine_termexample-name-style"/>
8836
8874
  <xsl:apply-templates/>
8837
8875
  </fo:inline>
8838
8876
  </xsl:if>
@@ -8983,6 +9021,7 @@
8983
9021
  </xsl:when>
8984
9022
  <xsl:otherwise>
8985
9023
  <fo:inline xsl:use-attribute-sets="example-name-style">
9024
+ <xsl:call-template name="refine_example-name-style"/>
8986
9025
  <xsl:apply-templates/>
8987
9026
  </fo:inline>
8988
9027
  </xsl:otherwise>
@@ -10194,6 +10233,7 @@
10194
10233
  <xsl:template match="*[local-name() = 'references'][@normative='true']/*[local-name() = 'bibitem']" name="bibitem" priority="2">
10195
10234
 
10196
10235
  <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-normative-style">
10236
+
10197
10237
  <xsl:call-template name="processBibitem"/>
10198
10238
  </fo:block>
10199
10239
 
@@ -10214,6 +10254,7 @@
10214
10254
  <xsl:when test="@hidden = 'true'"><!-- skip --></xsl:when>
10215
10255
  <xsl:otherwise>
10216
10256
  <fo:list-item id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-item-style">
10257
+
10217
10258
  <fo:list-item-label end-indent="label-end()">
10218
10259
  <fo:block role="SKIP">
10219
10260
  <fo:inline role="SKIP">
@@ -11986,4 +12027,6 @@
11986
12027
  </xsl:if>
11987
12028
  </xsl:template>
11988
12029
 
12030
+ <!-- update -->
12031
+
11989
12032
  </xsl:stylesheet>
@@ -208,7 +208,9 @@
208
208
  </define>
209
209
  <define name="roledescription">
210
210
  <element name="description">
211
- <ref name="FormattedString"/>
211
+ <oneOrMore>
212
+ <ref name="TextElement"/>
213
+ </oneOrMore>
212
214
  </element>
213
215
  </define>
214
216
  <define name="person">
@@ -333,7 +335,9 @@
333
335
  </define>
334
336
  <define name="affiliationdescription">
335
337
  <element name="description">
336
- <ref name="FormattedString"/>
338
+ <oneOrMore>
339
+ <ref name="TextElement"/>
340
+ </oneOrMore>
337
341
  </element>
338
342
  </define>
339
343
  <define name="organization">
@@ -897,7 +901,9 @@
897
901
  </define>
898
902
  <define name="formattedref">
899
903
  <element name="formattedref">
900
- <ref name="FormattedString"/>
904
+ <oneOrMore>
905
+ <ref name="TextElement"/>
906
+ </oneOrMore>
901
907
  </element>
902
908
  </define>
903
909
  <define name="license">
@@ -942,7 +948,9 @@
942
948
  <optional>
943
949
  <attribute name="type"/>
944
950
  </optional>
945
- <ref name="FormattedString"/>
951
+ <zeroOrMore>
952
+ <ref name="TextElement"/>
953
+ </zeroOrMore>
946
954
  </define>
947
955
  <!-- TitleType = ( "alternative" | "original" | "unofficial" | "subtitle" | "main" ) -->
948
956
  <define name="TypedUri">
@@ -1042,7 +1050,9 @@
1042
1050
  <optional>
1043
1051
  <attribute name="script"/>
1044
1052
  </optional>
1045
- <text/>
1053
+ <oneOrMore>
1054
+ <ref name="TextElement"/>
1055
+ </oneOrMore>
1046
1056
  </element>
1047
1057
  </define>
1048
1058
  <define name="docnumber">
@@ -1267,12 +1277,16 @@
1267
1277
  <optional>
1268
1278
  <attribute name="type"/>
1269
1279
  </optional>
1270
- <ref name="FormattedString"/>
1280
+ <oneOrMore>
1281
+ <ref name="TextElement"/>
1282
+ </oneOrMore>
1271
1283
  </element>
1272
1284
  </define>
1273
1285
  <define name="bibabstract">
1274
1286
  <element name="abstract">
1275
- <ref name="FormattedString"/>
1287
+ <oneOrMore>
1288
+ <ref name="TextElement"/>
1289
+ </oneOrMore>
1276
1290
  </element>
1277
1291
  </define>
1278
1292
  <define name="copyright">
@@ -1377,7 +1391,9 @@
1377
1391
  </attribute>
1378
1392
  <optional>
1379
1393
  <element name="description">
1380
- <ref name="FormattedString"/>
1394
+ <oneOrMore>
1395
+ <ref name="TextElement"/>
1396
+ </oneOrMore>
1381
1397
  </element>
1382
1398
  </optional>
1383
1399
  <element name="bibitem">
@@ -59,7 +59,9 @@ module Metanorma
59
59
  dn = "#{dn}(#{abbr})" unless abbr.empty?
60
60
  end
61
61
  id = node.attr("docidentifier") and dn = id
62
- xml.docidentifier { |i| i << dn }
62
+ xml.docidentifier primary: "true" do |i|
63
+ i << dn
64
+ end
63
65
  end
64
66
 
65
67
  def metadata_distribution(node, xml)
@@ -156,44 +156,7 @@
156
156
  </define>
157
157
  <define name="xref">
158
158
  <element name="xref">
159
- <attribute name="target">
160
- <data type="string">
161
- <param name="pattern">\i\c*|\c+#\c+</param>
162
- </data>
163
- </attribute>
164
- <optional>
165
- <attribute name="to">
166
- <data type="string">
167
- <param name="pattern">\i\c*|\c+#\c+</param>
168
- </data>
169
- </attribute>
170
- </optional>
171
- <optional>
172
- <attribute name="type">
173
- <ref name="ReferenceFormat"/>
174
- </attribute>
175
- </optional>
176
- <optional>
177
- <attribute name="alt"/>
178
- </optional>
179
- <optional>
180
- <attribute name="case">
181
- <choice>
182
- <value>capital</value>
183
- <value>lowercase</value>
184
- </choice>
185
- </attribute>
186
- </optional>
187
- <optional>
188
- <attribute name="droploc">
189
- <data type="boolean"/>
190
- </attribute>
191
- </optional>
192
- <optional>
193
- <attribute name="style">
194
- <ref name="XrefStyleType"/>
195
- </attribute>
196
- </optional>
159
+ <ref name="XrefAttributes"/>
197
160
  <ref name="XrefBody"/>
198
161
  </element>
199
162
  </define>
@@ -407,23 +370,7 @@
407
370
  </define>
408
371
  <define name="figure">
409
372
  <element name="figure">
410
- <attribute name="id">
411
- <data type="ID"/>
412
- </attribute>
413
- <optional>
414
- <attribute name="unnumbered">
415
- <data type="boolean"/>
416
- </attribute>
417
- </optional>
418
- <optional>
419
- <attribute name="number"/>
420
- </optional>
421
- <optional>
422
- <attribute name="subsequence"/>
423
- </optional>
424
- <optional>
425
- <attribute name="class"/>
426
- </optional>
373
+ <ref name="FigureAttributes"/>
427
374
  <ref name="BlockAttributes"/>
428
375
  <optional>
429
376
  <ref name="tname"/>
@@ -2450,6 +2397,49 @@
2450
2397
  </zeroOrMore>
2451
2398
  </element>
2452
2399
  </define>
2400
+ <define name="XrefAttributes">
2401
+ <attribute name="target">
2402
+ <data type="string">
2403
+ <param name="pattern">\i\c*|\c+#\c+</param>
2404
+ </data>
2405
+ </attribute>
2406
+ <optional>
2407
+ <attribute name="to">
2408
+ <data type="string">
2409
+ <param name="pattern">\i\c*|\c+#\c+</param>
2410
+ </data>
2411
+ </attribute>
2412
+ </optional>
2413
+ <optional>
2414
+ <attribute name="type">
2415
+ <ref name="ReferenceFormat"/>
2416
+ </attribute>
2417
+ </optional>
2418
+ <optional>
2419
+ <attribute name="alt"/>
2420
+ </optional>
2421
+ <optional>
2422
+ <attribute name="case">
2423
+ <choice>
2424
+ <value>capital</value>
2425
+ <value>lowercase</value>
2426
+ </choice>
2427
+ </attribute>
2428
+ </optional>
2429
+ <optional>
2430
+ <attribute name="droploc">
2431
+ <data type="boolean"/>
2432
+ </attribute>
2433
+ </optional>
2434
+ <optional>
2435
+ <attribute name="style">
2436
+ <ref name="XrefStyleType"/>
2437
+ </attribute>
2438
+ </optional>
2439
+ <optional>
2440
+ <attribute name="label"/>
2441
+ </optional>
2442
+ </define>
2453
2443
  <define name="XrefBody">
2454
2444
  <zeroOrMore>
2455
2445
  <ref name="XrefTarget"/>
@@ -2528,6 +2518,28 @@
2528
2518
  <attribute name="columns"/>
2529
2519
  </optional>
2530
2520
  </define>
2521
+ <define name="FigureAttributes">
2522
+ <attribute name="id">
2523
+ <data type="ID"/>
2524
+ </attribute>
2525
+ <optional>
2526
+ <attribute name="unnumbered">
2527
+ <data type="boolean"/>
2528
+ </attribute>
2529
+ </optional>
2530
+ <optional>
2531
+ <attribute name="number"/>
2532
+ </optional>
2533
+ <optional>
2534
+ <attribute name="subsequence"/>
2535
+ </optional>
2536
+ <optional>
2537
+ <attribute name="class"/>
2538
+ </optional>
2539
+ <optional>
2540
+ <attribute name="width"/>
2541
+ </optional>
2542
+ </define>
2531
2543
  <start>
2532
2544
  <ref name="standard-document"/>
2533
2545
  </start>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module UN
3
- VERSION = "0.12.5".freeze
3
+ VERSION = "0.12.6".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-un
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.5
4
+ version: 0.12.6
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-10 00:00:00.000000000 Z
11
+ date: 2024-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: iso-639