metanorma-csa 2.5.5 → 2.5.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -117,11 +117,11 @@
117
117
  <xsl:call-template name="insertHeaderFooter"/>
118
118
  <fo:flow flow-name="xsl-region-body">
119
119
 
120
- <!-- <xsl:if test="$debug = 'true'">
121
- <redirect:write file="contents_{java:getTime(java:java.util.Date.new())}.xml">
120
+ <xsl:if test="$debug = 'true'">
121
+ <redirect:write file="contents_.xml"> <!-- {java:getTime(java:java.util.Date.new())} -->
122
122
  <xsl:copy-of select="$contents"/>
123
123
  </redirect:write>
124
- </xsl:if> -->
124
+ </xsl:if>
125
125
 
126
126
  <fo:block>
127
127
  <fo:block>The permanent and official location for Cloud Security Alliance DevSecOps is</fo:block>
@@ -389,10 +389,10 @@
389
389
  <!-- ============================= -->
390
390
 
391
391
  <!-- element with title -->
392
- <xsl:template match="*[csa:title]" mode="contents">
392
+ <xsl:template match="*[csa:title or csa:fmt-title]" mode="contents">
393
393
  <xsl:variable name="level">
394
394
  <xsl:call-template name="getLevel">
395
- <xsl:with-param name="depth" select="csa:title/@depth"/>
395
+ <xsl:with-param name="depth" select="csa:fmt-title/@depth | csa:title/@depth"/>
396
396
  </xsl:call-template>
397
397
  </xsl:variable>
398
398
 
@@ -669,7 +669,7 @@
669
669
  <xsl:text>iVBORw0KGgoAAAANSUhEUgAAASEAAAEhCAYAAAAwHRYbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplYWRhN2RlNC04YzAyLTQ1N2UtYjUwNy0zNGYzY2RjNWE2ZGQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDUyNzBENDc3NjVCMTFFQTlDMDhGMEI2ODhENjUxQkIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDUyNzBENDY3NjVCMTFFQTlDMDhGMEI2ODhENjUxQkIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgSW5EZXNpZ24gMTQuMCAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOmZiZjFiODZmLTIzMjMtM2U0OS1hMDMzLTVlOGQxYThlNmI1YiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmlkOjFlMzVjZTE3LWU5NzAtNDQ1OS05ZjI0LTM1NzcwZWYzMjNjMiIvPiA8L3Jk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</xsl:text>
670
670
  </xsl:variable>
671
671
 
672
- <xsl:strip-space elements="csa:xref"/>
672
+ <!-- <xsl:strip-space elements="csa:xref"/> -->
673
673
 
674
674
  <xsl:variable name="namespace_full" select="namespace-uri(/*)"/> <!-- example: https://www.metanorma.org/ns/iso -->
675
675
  <xsl:variable name="root_element" select="local-name(/*)"/> <!-- example: iso-standard -->
@@ -1618,6 +1618,10 @@
1618
1618
 
1619
1619
  <xsl:template name="refine_termnote-name-style">
1620
1620
 
1621
+ <!-- <xsl:if test="$namespace = 'ieee'">
1622
+ <xsl:attribute name="padding-right">0mm</xsl:attribute>
1623
+ </xsl:if> -->
1624
+
1621
1625
  </xsl:template>
1622
1626
 
1623
1627
  <xsl:attribute-set name="termnote-p-style">
@@ -2308,9 +2312,21 @@
2308
2312
  <xsl:template name="processTables_Contents">
2309
2313
  <tables>
2310
2314
  <xsl:for-each select="//*[local-name() = 'table'][not(ancestor::*[local-name() = 'metanorma-extension'])][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
2311
- <table id="{@id}" alt-text="{*[local-name() = 'name']}">
2312
- <xsl:copy-of select="*[local-name() = 'name']"/>
2313
- </table>
2315
+ <xsl:choose>
2316
+ <xsl:when test="*[local-name() = 'fmt-name']">
2317
+ <xsl:variable name="fmt_name">
2318
+ <xsl:apply-templates select="*[local-name() = 'fmt-name']" mode="update_xml_step1"/>
2319
+ </xsl:variable>
2320
+ <table id="{@id}" alt-text="{normalize-space($fmt_name)}">
2321
+ <xsl:copy-of select="$fmt_name"/>
2322
+ </table>
2323
+ </xsl:when>
2324
+ <xsl:otherwise>
2325
+ <table id="{@id}" alt-text="{*[local-name() = 'name']}">
2326
+ <xsl:copy-of select="*[local-name() = 'name']"/>
2327
+ </table>
2328
+ </xsl:otherwise>
2329
+ </xsl:choose>
2314
2330
  </xsl:for-each>
2315
2331
  </tables>
2316
2332
  </xsl:template>
@@ -2318,9 +2334,21 @@
2318
2334
  <xsl:template name="processFigures_Contents">
2319
2335
  <figures>
2320
2336
  <xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name'] and not(@unnumbered = 'true') and normalize-space(@id) != ''] | //*[@id and starts-with(*[local-name() = 'name'], 'Figure ') and normalize-space(@id) != '']">
2321
- <figure id="{@id}" alt-text="{*[local-name() = 'name']}">
2322
- <xsl:copy-of select="*[local-name() = 'name']"/>
2323
- </figure>
2337
+ <xsl:choose>
2338
+ <xsl:when test="*[local-name() = 'fmt-name']">
2339
+ <xsl:variable name="fmt_name">
2340
+ <xsl:apply-templates select="*[local-name() = 'fmt-name']" mode="update_xml_step1"/>
2341
+ </xsl:variable>
2342
+ <figure id="{@id}" alt-text="{normalize-space($fmt_name)}">
2343
+ <xsl:copy-of select="$fmt_name"/>
2344
+ </figure>
2345
+ </xsl:when>
2346
+ <xsl:otherwise>
2347
+ <figure id="{@id}" alt-text="{*[local-name() = 'name']}">
2348
+ <xsl:copy-of select="*[local-name() = 'name']"/>
2349
+ </figure>
2350
+ </xsl:otherwise>
2351
+ </xsl:choose>
2324
2352
  </xsl:for-each>
2325
2353
  </figures>
2326
2354
  </xsl:template>
@@ -4139,6 +4167,11 @@
4139
4167
 
4140
4168
  <xsl:value-of select="@reference"/>
4141
4169
 
4170
+ <!-- commented https://github.com/metanorma/isodoc/issues/614 -->
4171
+ <!-- <xsl:if test="$namespace = 'itu'">
4172
+ <xsl:text>)</xsl:text>
4173
+ </xsl:if> -->
4174
+
4142
4175
  </fo:inline>
4143
4176
  <fo:inline xsl:use-attribute-sets="table-fn-body-style">
4144
4177
  <xsl:copy-of select="./node()"/>
@@ -4148,7 +4181,7 @@
4148
4181
 
4149
4182
  </xsl:if>
4150
4183
  </xsl:for-each>
4151
- </xsl:template>
4184
+ </xsl:template> <!-- table_fn_display -->
4152
4185
 
4153
4186
  <xsl:template name="create_fn">
4154
4187
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -4176,8 +4209,10 @@
4176
4209
  <!-- EMD table's footnotes rendering -->
4177
4210
  <!-- ============================ -->
4178
4211
 
4212
+ <!-- ============================ -->
4179
4213
  <!-- figure's footnotes rendering -->
4180
- <xsl:template name="fn_display_figure">
4214
+ <!-- ============================ -->
4215
+ <xsl:template name="fn_display_figure"> <!-- figure_fn_display -->
4181
4216
 
4182
4217
  <!-- current figure id -->
4183
4218
  <xsl:variable name="figure_id_">
@@ -4290,9 +4325,28 @@
4290
4325
 
4291
4326
  </fo:block>
4292
4327
  </xsl:if>
4293
-
4294
4328
  </xsl:template> <!-- fn_display_figure -->
4295
4329
 
4330
+ <!-- added for https://github.com/metanorma/isodoc/issues/607 -->
4331
+ <!-- figure's footnote label -->
4332
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'dl'][@key = 'true']/*[local-name() = 'dt']/ *[local-name() = 'p'][count(node()[normalize-space() != '']) = 1]/*[local-name() = 'sup']" priority="3">
4333
+ <xsl:variable name="key_iso">
4334
+
4335
+ </xsl:variable>
4336
+ <xsl:if test="normalize-space($key_iso) = 'true'">
4337
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
4338
+
4339
+ </xsl:if>
4340
+ <fo:inline xsl:use-attribute-sets="figure-fn-number-style"> <!-- id="{@id}" -->
4341
+ <!-- <xsl:value-of select="@reference"/> -->
4342
+ <xsl:apply-templates/>
4343
+ </fo:inline>
4344
+ </xsl:template>
4345
+
4346
+ <!-- ============================ -->
4347
+ <!-- END: figure's footnotes rendering -->
4348
+ <!-- ============================ -->
4349
+
4296
4350
  <!-- fn reference in the text rendering (for instance, 'some text 1) some text' ) -->
4297
4351
  <xsl:template match="*[local-name()='fn']">
4298
4352
  <fo:inline xsl:use-attribute-sets="fn-reference-style">
@@ -4308,6 +4362,10 @@
4308
4362
 
4309
4363
  <xsl:value-of select="@reference"/>
4310
4364
 
4365
+ <!-- commented, https://github.com/metanorma/isodoc/issues/614 -->
4366
+ <!-- <xsl:if test="$namespace = 'jis'">
4367
+ <fo:inline font-weight="normal">)</fo:inline>
4368
+ </xsl:if> -->
4311
4369
  </fo:basic-link>
4312
4370
  </fo:inline>
4313
4371
  </xsl:template>
@@ -4434,17 +4492,22 @@
4434
4492
  </fo:block>
4435
4493
  </xsl:when> <!-- END: a few components -->
4436
4494
  <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')"> <!-- definition list in a figure -->
4437
- <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
4495
+ <!-- Presentation XML contains 'Key' caption, https://github.com/metanorma/isodoc/issues/607 -->
4496
+ <xsl:if test="not(preceding-sibling::*[1][local-name() = 'p' and @keep-with-next])"> <!-- for old Presentation XML -->
4438
4497
 
4439
- <xsl:call-template name="refine_figure_key_style"/>
4498
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
4440
4499
 
4441
- <xsl:variable name="title-key">
4442
- <xsl:call-template name="getLocalizedString">
4443
- <xsl:with-param name="key">key</xsl:with-param>
4444
- </xsl:call-template>
4445
- </xsl:variable>
4446
- <xsl:value-of select="$title-key"/>
4447
- </fo:block>
4500
+ <xsl:call-template name="refine_figure_key_style"/>
4501
+
4502
+ <xsl:variable name="title-key">
4503
+ <xsl:call-template name="getLocalizedString">
4504
+ <xsl:with-param name="key">key</xsl:with-param>
4505
+ </xsl:call-template>
4506
+ </xsl:variable>
4507
+ <xsl:value-of select="$title-key"/>
4508
+ </fo:block>
4509
+
4510
+ </xsl:if>
4448
4511
  </xsl:when> <!-- END: definition list in a figure -->
4449
4512
  </xsl:choose>
4450
4513
 
@@ -4630,6 +4693,14 @@
4630
4693
 
4631
4694
  </xsl:template> <!-- END: dl -->
4632
4695
 
4696
+ <!-- caption for figure key and another caption, https://github.com/metanorma/isodoc/issues/607 -->
4697
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'p'][@keep-with-next = 'true' and *[local-name() = 'strong']]" priority="3">
4698
+ <fo:block text-align="left" margin-bottom="12pt" keep-with-next="always">
4699
+ <xsl:call-template name="refine_figure_key_style"/>
4700
+ <xsl:apply-templates/>
4701
+ </fo:block>
4702
+ </xsl:template>
4703
+
4633
4704
  <xsl:template name="refine_dl_formula_where_style">
4634
4705
 
4635
4706
  </xsl:template> <!-- refine_dl_formula_where_style -->
@@ -6662,6 +6733,39 @@
6662
6733
  </xsl:copy>
6663
6734
  </xsl:template>
6664
6735
 
6736
+ <xsl:template match="@*|node()" mode="mathml_linebreak">
6737
+ <xsl:copy>
6738
+ <xsl:apply-templates select="@*|node()" mode="mathml_linebreak"/>
6739
+ </xsl:copy>
6740
+ </xsl:template>
6741
+
6742
+ <!-- split math into two math -->
6743
+ <xsl:template match="mathml:mo[@linebreak] | mathml:mspace[@linebreak]" mode="mathml_linebreak">
6744
+ <xsl:variable name="math_elements_tree_">
6745
+ <xsl:for-each select="ancestor::*[ancestor-or-self::mathml:math]">
6746
+ <element pos="{position()}">
6747
+ <xsl:copy-of select="@*[local-name() != 'id']"/>
6748
+ <xsl:value-of select="name()"/>
6749
+ </element>
6750
+ </xsl:for-each>
6751
+ </xsl:variable>
6752
+
6753
+ <xsl:variable name="math_elements_tree" select="xalan:nodeset($math_elements_tree_)"/>
6754
+
6755
+ <xsl:call-template name="insertClosingElements">
6756
+ <xsl:with-param name="tree" select="$math_elements_tree"/>
6757
+ </xsl:call-template>
6758
+
6759
+ <xsl:element name="br" namespace="{$namespace_full}"/>
6760
+
6761
+ <xsl:call-template name="insertOpeningElements">
6762
+ <xsl:with-param name="tree" select="$math_elements_tree"/>
6763
+ <xsl:with-param name="xmlns">http://www.w3.org/1998/Math/MathML</xsl:with-param>
6764
+ <xsl:with-param name="add_continue">false</xsl:with-param>
6765
+ </xsl:call-template>
6766
+
6767
+ </xsl:template>
6768
+
6665
6769
  <!-- Examples:
6666
6770
  <stem type="AsciiMath">x = 1</stem>
6667
6771
  <stem type="AsciiMath"><asciimath>x = 1</asciimath></stem>
@@ -6913,9 +7017,11 @@
6913
7017
  </xsl:template>
6914
7018
 
6915
7019
  <xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"> <!-- show in 'stem' template -->
7020
+ <!-- https://github.com/metanorma/isodoc/issues/607
6916
7021
  <xsl:if test="normalize-space() != ''">
6917
- <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
6918
- </xsl:if>
7022
+ <xsl:text>(</xsl:text><xsl:apply-templates /><xsl:text>)</xsl:text>
7023
+ </xsl:if> -->
7024
+ <xsl:apply-templates/>
6919
7025
  </xsl:template>
6920
7026
 
6921
7027
  <!-- stem inside formula with name (with formula's number) -->
@@ -6990,6 +7096,8 @@
6990
7096
 
6991
7097
  <fo:inline xsl:use-attribute-sets="note-name-style" role="SKIP">
6992
7098
 
7099
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'tab']" mode="tab"/>
7100
+
6993
7101
  <xsl:call-template name="refine_note-name-style"/>
6994
7102
 
6995
7103
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
@@ -7046,10 +7154,6 @@
7046
7154
 
7047
7155
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
7048
7156
 
7049
- <xsl:if test="not(*[local-name() = 'name']/following-sibling::node()[1][self::text()][normalize-space()=''])">
7050
- <xsl:attribute name="padding-right">1mm</xsl:attribute>
7051
- </xsl:if>
7052
-
7053
7157
  <xsl:call-template name="refine_termnote-name-style"/>
7054
7158
 
7055
7159
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
@@ -7075,6 +7179,17 @@
7075
7179
  </xsl:when>
7076
7180
  <xsl:otherwise>
7077
7181
 
7182
+ <!-- https://github.com/metanorma/isodoc/issues/607 -->
7183
+ <!-- <xsl:if test="$namespace = 'ieee'">
7184
+ <xsl:text>—</xsl:text> em dash &#x2014;
7185
+ </xsl:if> -->
7186
+ <!-- <xsl:if test="$namespace = 'iho' or $namespace = 'gb' or $namespace = 'm3d' or $namespace = 'unece-rec' or $namespace = 'unece' or $namespace = 'rsd'">
7187
+ <xsl:text>:</xsl:text>
7188
+ </xsl:if> -->
7189
+
7190
+ <!-- <xsl:if test="$namespace = 'itu' or $namespace = 'nist-cswp' or $namespace = 'nist-sp'">
7191
+ <xsl:text> – </xsl:text> en dash &#x2013;
7192
+ </xsl:if> -->
7078
7193
  </xsl:otherwise>
7079
7194
  </xsl:choose>
7080
7195
  </xsl:variable>
@@ -7093,6 +7208,16 @@
7093
7208
  </xsl:when>
7094
7209
  <xsl:otherwise>
7095
7210
 
7211
+ <!-- https://github.com/metanorma/isodoc/issues/607 -->
7212
+ <!-- <xsl:if test="$namespace = 'ieee'">
7213
+ <xsl:text>—</xsl:text> em dash &#x2014;
7214
+ </xsl:if> -->
7215
+ <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'iso' or $namespace = 'iec' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' or $namespace = 'rsd' or $namespace = 'jcgm'">
7216
+ <xsl:text>:</xsl:text>
7217
+ </xsl:if> -->
7218
+ <!-- <xsl:if test="$namespace = 'itu' or $namespace = 'nist-cswp' or $namespace = 'nist-sp' or $namespace = 'unece-rec' or $namespace = 'unece'">
7219
+ <xsl:text> – </xsl:text> en dash &#x2013;
7220
+ </xsl:if> -->
7096
7221
  </xsl:otherwise>
7097
7222
  </xsl:choose>
7098
7223
  </xsl:variable>
@@ -7175,17 +7300,29 @@
7175
7300
  <!-- Example: Dimensions in millimeters -->
7176
7301
  <xsl:apply-templates select="*[local-name() = 'note'][@type = 'units']"/>
7177
7302
 
7303
+ <xsl:variable name="show_figure_key_in_block_container">
7304
+ true
7305
+ </xsl:variable>
7306
+
7178
7307
  <fo:block xsl:use-attribute-sets="figure-style" role="SKIP">
7179
7308
  <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note' and @type = 'units')]"/>
7180
7309
  </fo:block>
7181
- <xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
7182
- <xsl:call-template name="note"/>
7183
- </xsl:for-each>
7184
- <xsl:call-template name="fn_display_figure"/>
7310
+
7311
+ <xsl:if test="normalize-space($show_figure_key_in_block_container) = 'true'">
7312
+ <xsl:call-template name="showFigureKey"/>
7313
+ </xsl:if>
7185
7314
 
7186
7315
  <xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
7187
7316
 
7188
7317
  </fo:block-container>
7318
+
7319
+ </xsl:template>
7320
+
7321
+ <xsl:template name="showFigureKey">
7322
+ <xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
7323
+ <xsl:call-template name="note"/>
7324
+ </xsl:for-each>
7325
+ <xsl:call-template name="fn_display_figure"/>
7189
7326
  </xsl:template>
7190
7327
 
7191
7328
  <xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
@@ -7381,6 +7518,22 @@
7381
7518
  </xsl:if>
7382
7519
  </xsl:template>
7383
7520
 
7521
+ <xsl:template name="getImageSrc">
7522
+ <xsl:choose>
7523
+ <xsl:when test="not(starts-with(@src, 'data:'))">
7524
+ <xsl:choose>
7525
+ <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
7526
+ <xsl:value-of select="@src"/>
7527
+ </xsl:when>
7528
+ <xsl:otherwise>
7529
+ <xsl:value-of select="concat($basepath, @src)"/>
7530
+ </xsl:otherwise>
7531
+ </xsl:choose>
7532
+ </xsl:when>
7533
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7534
+ </xsl:choose>
7535
+ </xsl:template>
7536
+
7384
7537
  <xsl:template name="getImageScale">
7385
7538
  <xsl:param name="indent"/>
7386
7539
  <xsl:variable name="indent_left">
@@ -7390,19 +7543,7 @@
7390
7543
  </xsl:choose>
7391
7544
  </xsl:variable>
7392
7545
  <xsl:variable name="img_src">
7393
- <xsl:choose>
7394
- <xsl:when test="not(starts-with(@src, 'data:'))">
7395
- <xsl:choose>
7396
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
7397
- <xsl:value-of select="@src"/>
7398
- </xsl:when>
7399
- <xsl:otherwise>
7400
- <xsl:value-of select="concat($basepath, @src)"/>
7401
- </xsl:otherwise>
7402
- </xsl:choose>
7403
- </xsl:when>
7404
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7405
- </xsl:choose>
7546
+ <xsl:call-template name="getImageSrc"/>
7406
7547
  </xsl:variable>
7407
7548
 
7408
7549
  <xsl:variable name="image_width_effective">
@@ -7410,10 +7551,15 @@
7410
7551
  <xsl:value-of select="$width_effective - number($indent_left)"/>
7411
7552
 
7412
7553
  </xsl:variable>
7554
+ <xsl:variable name="image_height_effective" select="$height_effective - number($indent_left)"/>
7413
7555
  <!-- <xsl:message>width_effective=<xsl:value-of select="$width_effective"/></xsl:message>
7414
7556
  <xsl:message>indent_left=<xsl:value-of select="$indent_left"/></xsl:message>
7415
7557
  <xsl:message>image_width_effective=<xsl:value-of select="$image_width_effective"/> for <xsl:value-of select="ancestor::ogc:p[1]/@id"/></xsl:message> -->
7416
- <xsl:variable name="scale" select="java:org.metanorma.fop.utils.ImageUtils.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7558
+ <xsl:variable name="scale">
7559
+
7560
+ <xsl:value-of select="java:org.metanorma.fop.utils.ImageUtils.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7561
+
7562
+ </xsl:variable>
7417
7563
  <xsl:value-of select="$scale"/>
7418
7564
  </xsl:template>
7419
7565
 
@@ -7966,20 +8112,48 @@
7966
8112
  <xsl:template match="*[local-name() = 'emf']"/>
7967
8113
 
7968
8114
  <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
8115
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-name'])">
8116
+ <xsl:apply-templates mode="contents"/>
8117
+ <xsl:text> </xsl:text>
8118
+ </xsl:if>
8119
+ </xsl:template>
8120
+
8121
+ <xsl:template match="*[local-name() = 'title'][following-sibling::*[1][local-name() = 'fmt-title']]" mode="contents"/>
8122
+
8123
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'fmt-name'] | *[local-name() = 'table']/*[local-name() = 'fmt-name'] | *[local-name() = 'permission']/*[local-name() = 'fmt-name'] | *[local-name() = 'recommendation']/*[local-name() = 'fmt-name'] | *[local-name() = 'requirement']/*[local-name() = 'fmt-name']" mode="contents">
7969
8124
  <xsl:apply-templates mode="contents"/>
7970
8125
  <xsl:text> </xsl:text>
7971
8126
  </xsl:template>
7972
8127
 
7973
8128
  <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name'] | *[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="bookmarks">
8129
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-name'])">
8130
+ <xsl:apply-templates mode="bookmarks"/>
8131
+ <xsl:text> </xsl:text>
8132
+ </xsl:if>
8133
+ </xsl:template>
8134
+
8135
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'fmt-name'] | *[local-name() = 'table']/*[local-name() = 'fmt-name'] | *[local-name() = 'permission']/*[local-name() = 'fmt-name'] | *[local-name() = 'recommendation']/*[local-name() = 'fmt-name'] | *[local-name() = 'requirement']/*[local-name() = 'fmt-name'] | *[local-name() = 'sourcecode']/*[local-name() = 'fmt-name']" mode="bookmarks">
7974
8136
  <xsl:apply-templates mode="bookmarks"/>
7975
8137
  <xsl:text> </xsl:text>
7976
8138
  </xsl:template>
7977
8139
 
7978
8140
  <xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'name']/text()" mode="contents" priority="2">
8141
+ <xsl:if test="not(../following-sibling::*[1][local-name() = 'fmt-name'])">
8142
+ <xsl:value-of select="."/>
8143
+ </xsl:if>
8144
+ </xsl:template>
8145
+
8146
+ <xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement']/*[local-name() = 'fmt-name']/text()" mode="contents" priority="2">
7979
8147
  <xsl:value-of select="."/>
7980
8148
  </xsl:template>
7981
8149
 
7982
8150
  <xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement' or local-name() = 'sourcecode']/*[local-name() = 'name']//text()" mode="bookmarks" priority="2">
8151
+ <xsl:if test="not(../following-sibling::*[1][local-name() = 'fmt-name'])">
8152
+ <xsl:value-of select="."/>
8153
+ </xsl:if>
8154
+ </xsl:template>
8155
+
8156
+ <xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement' or local-name() = 'sourcecode']/*[local-name() = 'fmt-name']//text()" mode="bookmarks" priority="2">
7983
8157
  <xsl:value-of select="."/>
7984
8158
  </xsl:template>
7985
8159
 
@@ -8000,7 +8174,7 @@
8000
8174
  </xsl:template>
8001
8175
 
8002
8176
  <!-- special case: ignore section-title if @depth different than @depth of parent clause, or @depth of parent clause = 1 -->
8003
- <xsl:template match="*[local-name() = 'clause']/*[local-name() = 'p'][@type = 'section-title' and (@depth != ../*[local-name() = 'title']/@depth or ../*[local-name() = 'title']/@depth = 1)]" priority="3" mode="contents"/>
8177
+ <xsl:template match="*[local-name() = 'clause']/*[local-name() = 'p'][@type = 'section-title' and (@depth != ../*[local-name() = 'title' or local-name() = 'fmt-title']/@depth or ../*[local-name() = 'title' or local-name() = 'fmt-title']/@depth = 1)]" priority="3" mode="contents"/>
8004
8178
 
8005
8179
  <xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" name="contents_section-title" mode="contents">
8006
8180
  <xsl:variable name="level">
@@ -8012,6 +8186,9 @@
8012
8186
  <xsl:variable name="section">
8013
8187
  <xsl:choose>
8014
8188
  <xsl:when test="@type = 'section-title'"/>
8189
+ <xsl:when test="*[local-name() = 'span'][@class = 'fmt-caption-delim']">
8190
+ <xsl:value-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/preceding-sibling::node()"/>
8191
+ </xsl:when>
8015
8192
  <xsl:otherwise>
8016
8193
  <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
8017
8194
  </xsl:otherwise>
@@ -8034,6 +8211,19 @@
8034
8211
 
8035
8212
  <xsl:variable name="title">
8036
8213
  <xsl:choose>
8214
+ <!-- https://github.com/metanorma/mn-native-pdf/issues/770 -->
8215
+ <xsl:when test="*[local-name() = 'span'][@class = 'fmt-caption-delim']">
8216
+ <xsl:choose>
8217
+ <xsl:when test="@type = 'section-title'">
8218
+ <xsl:value-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/preceding-sibling::node()"/>
8219
+ <xsl:text>: </xsl:text>
8220
+ <xsl:copy-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/following-sibling::node()[not(local-name = 'fmt-xref-label')]"/>
8221
+ </xsl:when>
8222
+ <xsl:otherwise>
8223
+ <xsl:copy-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/following-sibling::node()[not(local-name = 'fmt-xref-label')]"/>
8224
+ </xsl:otherwise>
8225
+ </xsl:choose>
8226
+ </xsl:when>
8037
8227
  <xsl:when test="*[local-name() = 'tab']">
8038
8228
  <xsl:choose>
8039
8229
  <xsl:when test="@type = 'section-title'">
@@ -8069,7 +8259,7 @@
8069
8259
  <xsl:apply-templates mode="bookmarks"/>
8070
8260
  </xsl:template>
8071
8261
 
8072
- <xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
8262
+ <xsl:template match="*[local-name() = 'title' or local-name() = 'name' or local-name() = 'fmt-title' or local-name() = 'fmt-name']//*[local-name() = 'stem']" mode="contents">
8073
8263
  <xsl:apply-templates select="."/>
8074
8264
  </xsl:template>
8075
8265
 
@@ -8082,6 +8272,10 @@
8082
8272
  <xsl:apply-templates mode="contents"/>
8083
8273
  </xsl:template>
8084
8274
 
8275
+ <xsl:template match="*[local-name() = 'semx']" mode="contents">
8276
+ <xsl:apply-templates mode="contents"/>
8277
+ </xsl:template>
8278
+
8085
8279
  <xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
8086
8280
  <xsl:apply-templates mode="bookmarks"/>
8087
8281
  </xsl:template>
@@ -8091,9 +8285,14 @@
8091
8285
  <xsl:apply-templates mode="bookmarks"/>
8092
8286
  </xsl:template>
8093
8287
 
8288
+ <xsl:template match="*[local-name() = 'semx']" mode="bookmarks">
8289
+ <xsl:apply-templates mode="bookmarks"/>
8290
+ </xsl:template>
8291
+
8094
8292
  <!-- Bookmarks -->
8095
8293
  <xsl:template name="addBookmarks">
8096
8294
  <xsl:param name="contents"/>
8295
+ <xsl:param name="contents_addon"/>
8097
8296
  <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
8098
8297
  <xsl:if test="$contents_nodes//item">
8099
8298
  <fo:bookmark-tree>
@@ -8191,6 +8390,9 @@
8191
8390
  </xsl:otherwise>
8192
8391
  </xsl:choose>
8193
8392
 
8393
+ <!-- for $namespace = 'nist-sp' $namespace = 'ogc' $namespace = 'ogc-white-paper' -->
8394
+ <xsl:copy-of select="$contents_addon"/>
8395
+
8194
8396
  </fo:bookmark-tree>
8195
8397
  </xsl:if>
8196
8398
  </xsl:template>
@@ -8344,6 +8546,16 @@
8344
8546
  <!-- ====== -->
8345
8547
  <!-- ====== -->
8346
8548
  <xsl:template match="*[local-name() = 'title']" mode="contents_item">
8549
+ <xsl:param name="mode">bookmarks</xsl:param>
8550
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-title'])">
8551
+ <xsl:apply-templates mode="contents_item">
8552
+ <xsl:with-param name="mode" select="$mode"/>
8553
+ </xsl:apply-templates>
8554
+ <!-- <xsl:text> </xsl:text> -->
8555
+ </xsl:if>
8556
+ </xsl:template>
8557
+
8558
+ <xsl:template match="*[local-name() = 'fmt-title']" mode="contents_item">
8347
8559
  <xsl:param name="mode">bookmarks</xsl:param>
8348
8560
  <xsl:apply-templates mode="contents_item">
8349
8561
  <xsl:with-param name="mode" select="$mode"/>
@@ -8351,12 +8563,38 @@
8351
8563
  <!-- <xsl:text> </xsl:text> -->
8352
8564
  </xsl:template>
8353
8565
 
8566
+ <xsl:template match="*[local-name() = 'span'][ @class = 'fmt-caption-label' or @class = 'fmt-element-name' or @class = 'fmt-caption-delim']" mode="contents_item" priority="3">
8567
+ <xsl:apply-templates mode="contents_item"/>
8568
+ </xsl:template>
8569
+
8570
+ <xsl:template match="*[local-name() = 'semx']" mode="contents_item">
8571
+ <xsl:apply-templates mode="contents_item"/>
8572
+ </xsl:template>
8573
+
8574
+ <xsl:template match="*[local-name() = 'fmt-xref-label']" mode="contents_item"/>
8575
+
8354
8576
  <xsl:template name="getSection">
8355
- <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
8577
+ <xsl:choose>
8578
+ <xsl:when test="*[local-name() = 'fmt-title']">
8579
+ <xsl:variable name="fmt_title_section">
8580
+ <xsl:copy-of select="*[local-name() = 'fmt-title']//*[local-name() = 'span'][@class = 'fmt-caption-delim'][*[local-name() = 'tab']][1]/preceding-sibling::node()[not(local-name() = 'review')]"/>
8581
+ </xsl:variable>
8582
+ <xsl:value-of select="normalize-space($fmt_title_section)"/>
8583
+ </xsl:when>
8584
+ <xsl:otherwise>
8585
+ <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
8586
+ </xsl:otherwise>
8587
+ </xsl:choose>
8356
8588
  </xsl:template>
8357
8589
 
8358
8590
  <xsl:template name="getName">
8359
8591
  <xsl:choose>
8592
+ <xsl:when test="*[local-name() = 'fmt-title']//*[local-name() = 'span'][@class = 'fmt-caption-delim'][*[local-name() = 'tab']]">
8593
+ <xsl:copy-of select="*[local-name() = 'fmt-title']//*[local-name() = 'span'][@class = 'fmt-caption-delim'][*[local-name() = 'tab']][1]/following-sibling::node()"/>
8594
+ </xsl:when>
8595
+ <xsl:when test="*[local-name() = 'fmt-title']">
8596
+ <xsl:copy-of select="*[local-name() = 'fmt-title']/node()"/>
8597
+ </xsl:when>
8360
8598
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
8361
8599
  <xsl:copy-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/following-sibling::node()"/>
8362
8600
  </xsl:when>
@@ -8463,6 +8701,15 @@
8463
8701
  </xsl:template>
8464
8702
 
8465
8703
  <xsl:template match="*[local-name() = 'name']" mode="contents_item">
8704
+ <xsl:param name="mode">bookmarks</xsl:param>
8705
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-name'])">
8706
+ <xsl:apply-templates mode="contents_item">
8707
+ <xsl:with-param name="mode" select="$mode"/>
8708
+ </xsl:apply-templates>
8709
+ </xsl:if>
8710
+ </xsl:template>
8711
+
8712
+ <xsl:template match="*[local-name() = 'fmt-name']" mode="contents_item">
8466
8713
  <xsl:param name="mode">bookmarks</xsl:param>
8467
8714
  <xsl:apply-templates mode="contents_item">
8468
8715
  <xsl:with-param name="mode" select="$mode"/>
@@ -9260,7 +9507,7 @@
9260
9507
  <xsl:if test="normalize-space() != ''">
9261
9508
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
9262
9509
  <xsl:call-template name="refine_termexample-name-style"/>
9263
- <xsl:apply-templates/>
9510
+ <xsl:apply-templates/> <!-- commented $namespace = 'ieee', https://github.com/metanorma/isodoc/issues/614-->
9264
9511
  </fo:inline>
9265
9512
  </xsl:if>
9266
9513
  </xsl:template>
@@ -9301,107 +9548,108 @@
9301
9548
  -->
9302
9549
  <xsl:template match="*[local-name() = 'example']">
9303
9550
 
9304
- <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style" role="SKIP">
9305
-
9306
- <xsl:call-template name="setBlockSpanAll"/>
9551
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style" role="SKIP">
9307
9552
 
9308
- <xsl:call-template name="refine_example-style"/>
9553
+ <xsl:call-template name="setBlockSpanAll"/>
9309
9554
 
9310
- <xsl:variable name="fo_element">
9311
- <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl'] or *[not(local-name() = 'name')][1][local-name() = 'sourcecode']">block</xsl:if>
9312
- block
9313
- </xsl:variable>
9555
+ <xsl:call-template name="refine_example-style"/>
9314
9556
 
9315
- <fo:block-container margin-left="0mm" role="SKIP">
9557
+ <xsl:variable name="fo_element">
9558
+ <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl'] or *[not(local-name() = 'name')][1][local-name() = 'sourcecode']">block</xsl:if>
9559
+ block
9560
+ </xsl:variable>
9316
9561
 
9317
- <xsl:choose>
9562
+ <fo:block-container margin-left="0mm" role="SKIP">
9318
9563
 
9319
- <xsl:when test="contains(normalize-space($fo_element), 'block')">
9564
+ <xsl:choose>
9320
9565
 
9321
- <!-- display name 'EXAMPLE' in a separate block -->
9322
- <fo:block>
9323
- <xsl:apply-templates select="*[local-name()='name']">
9324
- <xsl:with-param name="fo_element" select="$fo_element"/>
9325
- </xsl:apply-templates>
9326
- </fo:block>
9566
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
9327
9567
 
9328
- <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
9329
- <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
9330
- <xsl:variable name="example_body">
9331
- <xsl:apply-templates select="node()[not(local-name() = 'name')]">
9568
+ <!-- display name 'EXAMPLE' in a separate block -->
9569
+ <fo:block>
9570
+ <xsl:apply-templates select="*[local-name()='name']">
9332
9571
  <xsl:with-param name="fo_element" select="$fo_element"/>
9333
9572
  </xsl:apply-templates>
9573
+ </fo:block>
9574
+
9575
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
9576
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
9577
+ <xsl:variable name="example_body">
9578
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
9579
+ <xsl:with-param name="fo_element" select="$fo_element"/>
9580
+ </xsl:apply-templates>
9581
+ </xsl:variable>
9582
+ <xsl:choose>
9583
+ <xsl:when test="xalan:nodeset($example_body)/*">
9584
+ <xsl:copy-of select="$example_body"/>
9585
+ </xsl:when>
9586
+ <xsl:otherwise><fo:block/><!-- prevent empty block-container --></xsl:otherwise>
9587
+ </xsl:choose>
9588
+ </fo:block-container>
9589
+ </fo:block-container>
9590
+ </xsl:when> <!-- end block -->
9591
+
9592
+ <xsl:when test="contains(normalize-space($fo_element), 'list')">
9593
+
9594
+ <xsl:variable name="provisional_distance_between_starts_">
9595
+ 7
9334
9596
  </xsl:variable>
9335
- <xsl:choose>
9336
- <xsl:when test="xalan:nodeset($example_body)/*">
9337
- <xsl:copy-of select="$example_body"/>
9338
- </xsl:when>
9339
- <xsl:otherwise><fo:block/><!-- prevent empty block-container --></xsl:otherwise>
9340
- </xsl:choose>
9341
- </fo:block-container>
9342
- </fo:block-container>
9343
- </xsl:when> <!-- end block -->
9597
+ <xsl:variable name="provisional_distance_between_starts" select="normalize-space($provisional_distance_between_starts_)"/>
9598
+ <xsl:variable name="indent_">
9599
+ 0
9600
+ </xsl:variable>
9601
+ <xsl:variable name="indent" select="normalize-space($indent_)"/>
9344
9602
 
9345
- <xsl:when test="contains(normalize-space($fo_element), 'list')">
9603
+ <fo:list-block provisional-distance-between-starts="{$provisional_distance_between_starts}mm">
9604
+ <fo:list-item>
9605
+ <fo:list-item-label start-indent="{$indent}mm" end-indent="label-end()">
9606
+ <fo:block>
9607
+ <xsl:apply-templates select="*[local-name()='name']">
9608
+ <xsl:with-param name="fo_element">block</xsl:with-param>
9609
+ </xsl:apply-templates>
9610
+ </fo:block>
9611
+ </fo:list-item-label>
9612
+ <fo:list-item-body start-indent="body-start()">
9613
+ <fo:block>
9614
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
9615
+ <xsl:with-param name="fo_element" select="$fo_element"/>
9616
+ </xsl:apply-templates>
9617
+ </fo:block>
9618
+ </fo:list-item-body>
9619
+ </fo:list-item>
9620
+ </fo:list-block>
9621
+ </xsl:when> <!-- end list -->
9346
9622
 
9347
- <xsl:variable name="provisional_distance_between_starts_">
9348
- 7
9349
- </xsl:variable>
9350
- <xsl:variable name="provisional_distance_between_starts" select="normalize-space($provisional_distance_between_starts_)"/>
9351
- <xsl:variable name="indent_">
9352
- 0
9353
- </xsl:variable>
9354
- <xsl:variable name="indent" select="normalize-space($indent_)"/>
9623
+ <xsl:otherwise> <!-- inline -->
9355
9624
 
9356
- <fo:list-block provisional-distance-between-starts="{$provisional_distance_between_starts}mm">
9357
- <fo:list-item>
9358
- <fo:list-item-label start-indent="{$indent}mm" end-indent="label-end()">
9359
- <fo:block>
9360
- <xsl:apply-templates select="*[local-name()='name']">
9361
- <xsl:with-param name="fo_element">block</xsl:with-param>
9362
- </xsl:apply-templates>
9363
- </fo:block>
9364
- </fo:list-item-label>
9365
- <fo:list-item-body start-indent="body-start()">
9366
- <fo:block>
9367
- <xsl:apply-templates select="node()[not(local-name() = 'name')]">
9625
+ <!-- display 'EXAMPLE' and first element in the same line -->
9626
+ <fo:block>
9627
+ <xsl:apply-templates select="*[local-name()='name']">
9628
+ <xsl:with-param name="fo_element" select="$fo_element"/>
9629
+ </xsl:apply-templates>
9630
+ <fo:inline>
9631
+ <xsl:apply-templates select="*[not(local-name() = 'name')][1]">
9368
9632
  <xsl:with-param name="fo_element" select="$fo_element"/>
9369
9633
  </xsl:apply-templates>
9370
- </fo:block>
9371
- </fo:list-item-body>
9372
- </fo:list-item>
9373
- </fo:list-block>
9374
- </xsl:when> <!-- end list -->
9375
-
9376
- <xsl:otherwise> <!-- inline -->
9634
+ </fo:inline>
9635
+ </fo:block>
9377
9636
 
9378
- <!-- display 'EXAMPLE' and first element in the same line -->
9379
- <fo:block>
9380
- <xsl:apply-templates select="*[local-name()='name']">
9381
- <xsl:with-param name="fo_element" select="$fo_element"/>
9382
- </xsl:apply-templates>
9383
- <fo:inline>
9384
- <xsl:apply-templates select="*[not(local-name() = 'name')][1]">
9385
- <xsl:with-param name="fo_element" select="$fo_element"/>
9386
- </xsl:apply-templates>
9387
- </fo:inline>
9388
- </fo:block>
9637
+ <xsl:if test="*[not(local-name() = 'name')][position() &gt; 1]">
9638
+ <!-- display further elements in blocks -->
9639
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
9640
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
9641
+ <xsl:apply-templates select="*[not(local-name() = 'name')][position() &gt; 1]">
9642
+ <xsl:with-param name="fo_element" select="'block'"/>
9643
+ </xsl:apply-templates>
9644
+ </fo:block-container>
9645
+ </fo:block-container>
9646
+ </xsl:if>
9647
+ </xsl:otherwise> <!-- end inline -->
9389
9648
 
9390
- <xsl:if test="*[not(local-name() = 'name')][position() &gt; 1]">
9391
- <!-- display further elements in blocks -->
9392
- <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
9393
- <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
9394
- <xsl:apply-templates select="*[not(local-name() = 'name')][position() &gt; 1]">
9395
- <xsl:with-param name="fo_element" select="'block'"/>
9396
- </xsl:apply-templates>
9397
- </fo:block-container>
9398
- </fo:block-container>
9399
- </xsl:if>
9400
- </xsl:otherwise> <!-- end inline -->
9649
+ </xsl:choose>
9650
+ </fo:block-container>
9651
+ </fo:block-container>
9401
9652
 
9402
- </xsl:choose>
9403
- </fo:block-container>
9404
- </fo:block-container>
9405
9653
  </xsl:template>
9406
9654
 
9407
9655
  <xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']">
@@ -9422,7 +9670,7 @@
9422
9670
  <xsl:otherwise>
9423
9671
  <fo:inline xsl:use-attribute-sets="example-name-style">
9424
9672
  <xsl:call-template name="refine_example-name-style"/>
9425
- <xsl:apply-templates/>
9673
+ <xsl:apply-templates/> <!-- $namespace = 'ieee', see https://github.com/metanorma/isodoc/issues/614 -->
9426
9674
  </fo:inline>
9427
9675
  </xsl:otherwise>
9428
9676
  </xsl:choose>
@@ -9604,15 +9852,17 @@
9604
9852
 
9605
9853
  <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
9606
9854
  <fo:block role="BlockQuote">
9607
- <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
9855
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source') and not(local-name() = 'attribution')]"/> <!-- process all nested nodes, except author and source -->
9608
9856
  </fo:block>
9609
9857
  </fo:block-container>
9610
9858
  </fo:block-container>
9611
- <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
9859
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source'] or *[local-name() = 'attribution']">
9612
9860
  <fo:block xsl:use-attribute-sets="quote-source-style">
9613
9861
  <!-- — ISO, ISO 7301:2011, Clause 1 -->
9614
9862
  <xsl:apply-templates select="*[local-name() = 'author']"/>
9615
9863
  <xsl:apply-templates select="*[local-name() = 'source']"/>
9864
+ <!-- added for https://github.com/metanorma/isodoc/issues/607 -->
9865
+ <xsl:apply-templates select="*[local-name() = 'attribution']/*[local-name() = 'p']/node()"/>
9616
9866
  </fo:block>
9617
9867
  </xsl:if>
9618
9868
 
@@ -9634,9 +9884,13 @@
9634
9884
  </xsl:template>
9635
9885
 
9636
9886
  <xsl:template match="*[local-name() = 'author']">
9637
- <xsl:text>— </xsl:text>
9887
+ <xsl:if test="local-name(..) = 'quote'"> <!-- for old Presentation XML, https://github.com/metanorma/isodoc/issues/607 -->
9888
+ <xsl:text>— </xsl:text>
9889
+ </xsl:if>
9638
9890
  <xsl:apply-templates/>
9639
9891
  </xsl:template>
9892
+
9893
+ <xsl:template match="*[local-name() = 'quote']//*[local-name() = 'referenceFrom']"/>
9640
9894
  <!-- ====== -->
9641
9895
  <!-- ====== -->
9642
9896
 
@@ -9772,6 +10026,15 @@
9772
10026
 
9773
10027
  </xsl:template> <!-- tab -->
9774
10028
 
10029
+ <xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']/*[local-name() = 'tab']" priority="2"/>
10030
+ <xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']/*[local-name() = 'tab']" priority="2"/>
10031
+
10032
+ <xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']/*[local-name() = 'tab']" mode="tab">
10033
+
10034
+ <xsl:attribute name="padding-right">4mm</xsl:attribute>
10035
+
10036
+ </xsl:template>
10037
+
9775
10038
  <xsl:template name="insertNonBreakSpaces">
9776
10039
  <xsl:param name="count"/>
9777
10040
  <xsl:if test="$count &gt; 0">
@@ -9816,8 +10079,12 @@
9816
10079
  </xsl:template>
9817
10080
 
9818
10081
  <xsl:template match="*[local-name() = 'domain']">
10082
+ <!-- https://github.com/metanorma/isodoc/issues/607
9819
10083
  <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
9820
- <xsl:text> </xsl:text>
10084
+ <xsl:text> </xsl:text> -->
10085
+ <xsl:if test="not(@hidden = 'true')">
10086
+ <xsl:apply-templates/>
10087
+ </xsl:if>
9821
10088
  </xsl:template>
9822
10089
 
9823
10090
  <xsl:template match="*[local-name() = 'admitted']">
@@ -9865,6 +10132,29 @@
9865
10132
  <!-- END definition -->
9866
10133
  <!-- ========== -->
9867
10134
 
10135
+ <xsl:variable name="reviews_">
10136
+ <xsl:for-each select="//*[local-name() = 'review'][@from]">
10137
+ <xsl:copy>
10138
+ <xsl:copy-of select="@from"/>
10139
+ <xsl:copy-of select="@id"/>
10140
+ </xsl:copy>
10141
+ </xsl:for-each>
10142
+ </xsl:variable>
10143
+ <xsl:variable name="reviews" select="xalan:nodeset($reviews_)"/>
10144
+
10145
+ <xsl:template name="addReviewHelper">
10146
+ <!-- if there is review with from="...", then add small helper block for Annot tag adding, see 'review' template -->
10147
+ <xsl:variable name="curr_id" select="@id"/>
10148
+ <xsl:variable name="review_id" select="normalize-space($reviews//*[local-name() = 'review'][@from = $curr_id]/@id)"/>
10149
+ <xsl:if test="$review_id != ''"> <!-- i.e. if review found -->
10150
+ <fo:block keep-with-next="always" line-height="0.1" id="{$review_id}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{$review_id}" fox:alt-text="Annot___{$review_id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
10151
+ </xsl:if>
10152
+ <!-- <fo:block>
10153
+ <curr_id><xsl:value-of select="$curr_id"/></curr_id>
10154
+ <xsl:copy-of select="$reviews"/>
10155
+ </fo:block> -->
10156
+ </xsl:template>
10157
+
9868
10158
  <!-- main sections -->
9869
10159
  <xsl:template match="/*/*[local-name() = 'sections']/*" name="sections_node" priority="2">
9870
10160
 
@@ -9873,6 +10163,8 @@
9873
10163
 
9874
10164
  <xsl:call-template name="sections_element_style"/>
9875
10165
 
10166
+ <xsl:call-template name="addReviewHelper"/>
10167
+
9876
10168
  <xsl:apply-templates/>
9877
10169
  </fo:block>
9878
10170
 
@@ -9913,6 +10205,7 @@
9913
10205
 
9914
10206
  <fo:block>
9915
10207
  <xsl:call-template name="setId"/>
10208
+ <xsl:call-template name="addReviewHelper"/>
9916
10209
  <xsl:apply-templates/>
9917
10210
  </fo:block>
9918
10211
  </xsl:template>
@@ -9949,6 +10242,8 @@
9949
10242
 
9950
10243
  <xsl:call-template name="refine_clause_style"/>
9951
10244
 
10245
+ <xsl:call-template name="addReviewHelper"/>
10246
+
9952
10247
  <xsl:apply-templates/>
9953
10248
  </fo:block>
9954
10249
  </xsl:template>
@@ -10001,6 +10296,23 @@
10001
10296
 
10002
10297
  <xsl:variable name="id_from" select="normalize-space(current()/@from)"/>
10003
10298
 
10299
+ <xsl:if test="1 = 1">
10300
+ <xsl:choose>
10301
+ <!-- if there isn't the attribute '@from', then -->
10302
+ <xsl:when test="$id_from = ''">
10303
+ <fo:block id="{@id}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{@id}" fox:alt-text="Annot___{@id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
10304
+ </xsl:when>
10305
+ <!-- if there isn't element with id 'from', then create 'bookmark' here -->
10306
+ <xsl:when test="ancestor::*[contains(local-name(), '-standard')] and not(ancestor::*[contains(local-name(), '-standard')]//*[@id = $id_from])">
10307
+ <fo:block id="{@from}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{@from}" fox:alt-text="Annot___{@id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
10308
+ </xsl:when>
10309
+ <xsl:when test="not(/*[@id = $id_from]) and not(/*//*[@id = $id_from]) and not(preceding-sibling::*[@id = $id_from])">
10310
+ <fo:block id="{@from}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{@from}" fox:alt-text="Annot___{@id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
10311
+ </xsl:when>
10312
+ </xsl:choose>
10313
+ </xsl:if>
10314
+
10315
+ <xsl:if test="1 = 2">
10004
10316
  <xsl:choose>
10005
10317
  <!-- if there isn't the attribute '@from', then -->
10006
10318
  <xsl:when test="$id_from = ''">
@@ -10014,6 +10326,7 @@
10014
10326
  <fo:block id="{@from}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
10015
10327
  </xsl:when>
10016
10328
  </xsl:choose>
10329
+ </xsl:if>
10017
10330
 
10018
10331
  </xsl:template>
10019
10332
 
@@ -11244,6 +11557,10 @@
11244
11557
  <!-- - Remove semantic xml part -->
11245
11558
  <!-- - Remove image/emf (EMF vector image for Word) -->
11246
11559
  <!-- - add @id, redundant for table auto-layout algorithm -->
11560
+ <!-- - process 'passthrough' element -->
11561
+ <!-- - split math by element with @linebreak into maths -->
11562
+ <!-- - rename fmt-title to title, fmt-name to name and another changes to convert new presentation XML to -->
11563
+ <!-- - old XML without significant changes in XSLT -->
11247
11564
  <!-- =========================================================================== -->
11248
11565
  <xsl:template match="@*|node()" mode="update_xml_step1">
11249
11566
  <xsl:copy>
@@ -11251,6 +11568,12 @@
11251
11568
  </xsl:copy>
11252
11569
  </xsl:template>
11253
11570
 
11571
+ <xsl:template match="@*|node()" mode="update_xml_pres">
11572
+ <xsl:copy>
11573
+ <xsl:apply-templates select="@*|node()" mode="update_xml_pres"/>
11574
+ </xsl:copy>
11575
+ </xsl:template>
11576
+
11254
11577
  <!-- change section's order based on @displayorder value -->
11255
11578
  <xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
11256
11579
  <xsl:copy>
@@ -11327,7 +11650,7 @@
11327
11650
  </xsl:template>
11328
11651
 
11329
11652
  <!-- Example with 'class': <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
11330
- <xsl:template match="*[local-name() = 'span'][@style or @class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear']" mode="update_xml_step1" priority="2">
11653
+ <xsl:template match="*[local-name() = 'span'][@style or @class = 'stdpublisher' or @class = 'stddocNumber' or @class = 'stddocPartNumber' or @class = 'stdyear' or @class = 'horizontal' or @class = 'norotate' or @class = 'halffontsize']" mode="update_xml_step1" priority="2">
11331
11654
  <xsl:copy>
11332
11655
  <xsl:copy-of select="@*"/>
11333
11656
  <xsl:apply-templates mode="update_xml_step1"/>
@@ -11346,14 +11669,17 @@
11346
11669
 
11347
11670
  <!-- remove semantic xml -->
11348
11671
  <xsl:template match="*[local-name() = 'metanorma-extension']/*[local-name() = 'metanorma']/*[local-name() = 'source']" mode="update_xml_step1"/>
11672
+ <xsl:template match="*[local-name() = 'metanorma-extension']/*[local-name() = 'metanorma']/*[local-name() = 'source']" mode="update_xml_pres"/>
11349
11673
 
11350
11674
  <!-- remove image/emf -->
11351
11675
  <xsl:template match="*[local-name() = 'image']/*[local-name() = 'emf']" mode="update_xml_step1"/>
11676
+ <xsl:template match="*[local-name() = 'image']/*[local-name() = 'emf']" mode="update_xml_pres"/>
11352
11677
 
11353
11678
  <!-- remove preprocess-xslt -->
11354
11679
  <xsl:template match="*[local-name() = 'preprocess-xslt']" mode="update_xml_step1"/>
11680
+ <xsl:template match="*[local-name() = 'preprocess-xslt']" mode="update_xml_pres"/>
11355
11681
 
11356
- <xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image'] | *[local-name() = 'sourcecode'] | *[local-name() = 'bibdata'] | *[local-name() = 'localized-strings']" mode="update_xml_step1">
11682
+ <xsl:template match="*[local-name() = 'stem'][not(.//*[local-name() = 'passthrough']) and not(.//*[@linebreak])] | *[local-name() = 'image'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'sourcecode'][not(.//*[local-name() = 'passthrough']) and not(.//*[local-name() = 'fmt-name'])] | *[local-name() = 'bibdata'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'localized-strings']" mode="update_xml_step1">
11357
11683
  <xsl:copy-of select="."/>
11358
11684
  </xsl:template>
11359
11685
 
@@ -11419,6 +11745,93 @@
11419
11745
  </xsl:choose>
11420
11746
  </xsl:template>
11421
11747
 
11748
+ <xsl:variable name="regex_passthrough">.*\bpdf\b.*</xsl:variable>
11749
+ <xsl:template match="*[local-name() = 'passthrough']" mode="update_xml_step1">
11750
+ <!-- <xsl:if test="contains(@formats, ' pdf ')"> -->
11751
+ <xsl:if test="normalize-space(java:matches(java:java.lang.String.new(@formats), $regex_passthrough)) = 'true'">
11752
+ <xsl:apply-templates mode="update_xml_step1"/>
11753
+ </xsl:if>
11754
+ </xsl:template>
11755
+
11756
+ <!-- split math by element with @linebreak into maths -->
11757
+ <xsl:template match="mathml:math[.//mathml:mo[@linebreak] or .//mathml:mspace[@linebreak]]" mode="update_xml_step1">
11758
+ <xsl:variable name="maths">
11759
+ <xsl:apply-templates select="." mode="mathml_linebreak"/>
11760
+ </xsl:variable>
11761
+ <xsl:copy-of select="$maths"/>
11762
+ </xsl:template>
11763
+
11764
+ <!-- update new Presentation XML -->
11765
+ <xsl:template match="*[local-name() = 'title'][following-sibling::*[1][local-name() = 'fmt-title']]" mode="update_xml_step1"/>
11766
+ <xsl:template match="*[local-name() = 'title'][following-sibling::*[1][local-name() = 'fmt-title']]" mode="update_xml_pres"/>
11767
+ <xsl:template match="*[local-name() = 'name'][following-sibling::*[1][local-name() = 'fmt-name']]" mode="update_xml_step1"/>
11768
+ <xsl:template match="*[local-name() = 'name'][following-sibling::*[1][local-name() = 'fmt-name']]" mode="update_xml_pres"/>
11769
+ <xsl:template match="*[local-name() = 'section-title'][following-sibling::*[1][local-name() = 'p'][@type = 'section-title' or @type = 'floating-title']]" mode="update_xml_step1"/>
11770
+ <xsl:template match="*[local-name() = 'section-title'][following-sibling::*[1][local-name() = 'p'][@type = 'section-title' or @type = 'floating-title']]" mode="update_xml_pres"/>
11771
+
11772
+ <xsl:template match="*[local-name() = 'p'][@type = 'section-title' or @type = 'floating-title'][preceding-sibling::*[1][local-name() = 'section-title']]" mode="update_xml_step1">
11773
+ <xsl:copy>
11774
+ <xsl:apply-templates select="@*" mode="update_xml_step1"/>
11775
+ <xsl:copy-of select="preceding-sibling::*[1][local-name() = 'section-title']/@depth"/>
11776
+ <xsl:apply-templates select="node()" mode="update_xml_step1"/>
11777
+ </xsl:copy>
11778
+ </xsl:template>
11779
+ <xsl:template match="*[local-name() = 'p'][@type = 'section-title' or @type = 'floating-title'][preceding-sibling::*[1][local-name() = 'section-title']]" mode="update_xml_pres">
11780
+ <xsl:copy>
11781
+ <xsl:apply-templates select="@*" mode="update_xml_pres"/>
11782
+ <xsl:copy-of select="preceding-sibling::*[1][local-name() = 'section-title']/@depth"/>
11783
+ <xsl:apply-templates select="node()" mode="update_xml_pres"/>
11784
+ </xsl:copy>
11785
+ </xsl:template>
11786
+
11787
+ <xsl:template match="*[local-name() = 'fmt-title']"/>
11788
+ <xsl:template match="*[local-name() = 'fmt-title']" mode="update_xml_step1">
11789
+ <xsl:element name="title" namespace="{$namespace_full}">
11790
+ <xsl:copy-of select="@*"/>
11791
+ <xsl:apply-templates mode="update_xml_step1"/>
11792
+ </xsl:element>
11793
+ </xsl:template>
11794
+ <xsl:template match="*[local-name() = 'fmt-title']" mode="update_xml_pres">
11795
+ <xsl:element name="title" namespace="{$namespace_full}">
11796
+ <xsl:copy-of select="@*"/>
11797
+ <xsl:apply-templates mode="update_xml_pres"/>
11798
+ </xsl:element>
11799
+ </xsl:template>
11800
+
11801
+ <xsl:template match="*[local-name() = 'fmt-name']"/>
11802
+ <xsl:template match="*[local-name() = 'fmt-name']" mode="update_xml_step1">
11803
+ <xsl:element name="name" namespace="{$namespace_full}">
11804
+ <xsl:copy-of select="@*"/>
11805
+ <xsl:apply-templates mode="update_xml_step1"/>
11806
+ </xsl:element>
11807
+ </xsl:template>
11808
+ <xsl:template match="*[local-name() = 'fmt-name']" mode="update_xml_pres">
11809
+ <xsl:element name="name" namespace="{$namespace_full}">
11810
+ <xsl:copy-of select="@*"/>
11811
+ <xsl:apply-templates mode="update_xml_pres"/>
11812
+ </xsl:element>
11813
+ </xsl:template>
11814
+
11815
+ <xsl:template match="*[local-name() = 'span'][ @class = 'fmt-caption-label' or @class = 'fmt-element-name' or @class = 'fmt-caption-delim' or @class = 'fmt-autonum-delim']" mode="update_xml_step1" priority="3">
11816
+ <xsl:apply-templates mode="update_xml_step1"/>
11817
+ </xsl:template>
11818
+ <xsl:template match="*[local-name() = 'span'][ @class = 'fmt-caption-label' or @class = 'fmt-element-name' or @class = 'fmt-caption-delim' or @class = 'fmt-autonum-delim']" mode="update_xml_pres" priority="3">
11819
+ <xsl:apply-templates mode="update_xml_pres"/>
11820
+ </xsl:template>
11821
+
11822
+ <xsl:template match="*[local-name() = 'semx']" mode="update_xml_step1">
11823
+ <xsl:apply-templates mode="update_xml_step1"/>
11824
+ </xsl:template>
11825
+ <xsl:template match="*[local-name() = 'semx']" mode="update_xml_pres">
11826
+ <xsl:apply-templates mode="update_xml_pres"/>
11827
+ </xsl:template>
11828
+
11829
+ <xsl:template match="*[local-name() = 'fmt-xref-label']"/>
11830
+ <xsl:template match="*[local-name() = 'fmt-xref-label']" mode="update_xml_step1"/>
11831
+ <xsl:template match="*[local-name() = 'fmt-xref-label']" mode="update_xml_pres"/>
11832
+
11833
+ <!-- END: update new Presentation XML -->
11834
+
11422
11835
  <!-- =========================================================================== -->
11423
11836
  <!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
11424
11837
  <!-- =========================================================================== -->
@@ -11522,6 +11935,8 @@
11522
11935
 
11523
11936
  <xsl:template name="insertOpeningElements">
11524
11937
  <xsl:param name="tree"/>
11938
+ <xsl:param name="xmlns"/>
11939
+ <xsl:param name="add_continue">true</xsl:param>
11525
11940
  <xsl:for-each select="$tree//element">
11526
11941
  <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
11527
11942
  <xsl:value-of select="."/>
@@ -11532,7 +11947,8 @@
11532
11947
  <xsl:value-of select="."/>
11533
11948
  <xsl:text>"</xsl:text>
11534
11949
  </xsl:for-each>
11535
- <xsl:if test="position() = 1"> continue="true"</xsl:if>
11950
+ <xsl:if test="position() = 1 and $add_continue = 'true'"> continue="true"</xsl:if>
11951
+ <xsl:if test="position() = 1 and $xmlns != ''"> xmlns="<xsl:value-of select="$xmlns"/>"</xsl:if>
11536
11952
  <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
11537
11953
  <xsl:if test="$debug = 'true'">
11538
11954
  <xsl:message>&lt;<xsl:value-of select="."/>&gt;</xsl:message>
@@ -11608,7 +12024,7 @@
11608
12024
  <xsl:variable name="non_white_space">[^\s\u3000-\u9FFF]</xsl:variable>
11609
12025
  <xsl:variable name="regex_dots_units">((\b((<xsl:value-of select="$non_white_space"/>{1,3}\.<xsl:value-of select="$non_white_space"/>+)|(<xsl:value-of select="$non_white_space"/>+\.<xsl:value-of select="$non_white_space"/>{1,3}))\b)|(\.<xsl:value-of select="$non_white_space"/>{1,3})\b)</xsl:variable>
11610
12026
 
11611
- <xsl:template match="text()[not(ancestor::*[local-name() = 'bibdata'] or ancestor::*[local-name() = 'link'][not(contains(.,' '))] or ancestor::*[local-name() = 'sourcecode'] or ancestor::*[local-name() = 'math'] or ancestor::*[local-name() = 'svg'] or starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.') or normalize-space() = '' )]" name="keep_together_standard_number" mode="update_xml_enclose_keep-together_within-line">
12027
+ <xsl:template match="text()[not(ancestor::*[local-name() = 'bibdata'] or ancestor::*[local-name() = 'link'][not(contains(.,' '))] or ancestor::*[local-name() = 'sourcecode'] or ancestor::*[local-name() = 'math'] or ancestor::*[local-name() = 'svg'] or ancestor::*[local-name() = 'name'] or starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.') or normalize-space() = '' )]" name="keep_together_standard_number" mode="update_xml_enclose_keep-together_within-line">
11612
12028
 
11613
12029
  <xsl:variable name="parent" select="local-name(..)"/>
11614
12030
 
@@ -12187,6 +12603,7 @@
12187
12603
  </pdf:catalog>
12188
12604
  <x:xmpmeta xmlns:x="adobe:ns:meta/">
12189
12605
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
12606
+ <!-- Commented after upgrade to Apache FOP 2.10
12190
12607
  <rdf:Description xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/" xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#" xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#" rdf:about="">
12191
12608
  <pdfaExtension:schemas>
12192
12609
  <rdf:Bag>
@@ -12219,7 +12636,7 @@
12219
12636
  </rdf:li>
12220
12637
  </rdf:Bag>
12221
12638
  </pdfaExtension:schemas>
12222
- </rdf:Description>
12639
+ </rdf:Description> -->
12223
12640
  <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
12224
12641
  <!-- Dublin Core properties go here -->
12225
12642
  <dc:title>
@@ -12266,7 +12683,7 @@
12266
12683
  <xsl:variable name="dc_description">
12267
12684
  <xsl:variable name="abstract">
12268
12685
 
12269
- <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()[not(ancestor::*[local-name() = 'title'])]"/>
12686
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()[not(ancestor::*[local-name() = 'fmt-title']) and not(ancestor::*[local-name() = 'title']) and not(ancestor::*[local-name() = 'fmt-xref-label'])]"/>
12270
12687
 
12271
12688
  </xsl:variable>
12272
12689
  <rdf:Alt>
@@ -12811,31 +13228,123 @@
12811
13228
 
12812
13229
  <!-- END: insert cover page image -->
12813
13230
 
12814
- <xsl:variable name="regex_ja_spec">[\uFF08\uFF09]</xsl:variable>
13231
+ <!-- https://github.com/metanorma/docs/blob/main/109.adoc -->
13232
+ <xsl:variable name="regex_ja_spec_">[
13233
+ <!-- Rotate 90° clockwise -->
13234
+ \u0028 <!-- U+0028 LEFT PARENTHESIS (() -->
13235
+ \uFF08 <!-- U+FF08 FULLWIDTH LEFT PARENTHESIS (() -->
13236
+ \u0029 <!-- U+0029 RIGHT PARENTHESIS ()) -->
13237
+ \uFF09 <!-- U+FF09 FULLWIDTH RIGHT PARENTHESIS ()) -->
13238
+ \u007B <!-- U+007B LEFT CURLY BRACKET ({) -->
13239
+ \uFF5B <!-- U+FF5B FULLWIDTH LEFT CURLY BRACKET ({) -->
13240
+ \u007D <!-- U+007D RIGHT CURLY BRACKET (}) -->
13241
+ \uFF5D <!-- U+FF5D FULLWIDTH RIGHT CURLY BRACKET (}) -->
13242
+ \u3014 <!-- U+3014 LEFT TORTOISE SHELL BRACKET (〔) -->
13243
+ \u3015 <!-- U+3015 RIGHT TORTOISE SHELL BRACKET (〕) -->
13244
+ \u3010 <!-- U+3010 LEFT BLACK LENTICULAR BRACKET (【) -->
13245
+ \u3011 <!-- U+3011 RIGHT BLACK LENTICULAR BRACKET (】) -->
13246
+ \u300A <!-- U+300A LEFT DOUBLE ANGLE BRACKET (《) -->
13247
+ \u300B <!-- U+300B RIGHT DOUBLE ANGLE BRACKET (》) -->
13248
+ \uFF62 <!-- U+FF62 HALFWIDTH LEFT CORNER BRACKET (「) -->
13249
+ \u300C <!-- U+300C LEFT CORNER BRACKET (「) -->
13250
+ \uFF63 <!-- U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」) -->
13251
+ \u300D <!-- U+300D RIGHT CORNER BRACKET (」) -->
13252
+ \u300E <!-- U+300E LEFT WHITE CORNER BRACKET (『) -->
13253
+ \u300F <!-- U+300F RIGHT WHITE CORNER BRACKET (』) -->
13254
+ \u005B <!-- U+005B LEFT SQUARE BRACKET ([) -->
13255
+ \uFF3B <!-- U+FF3B FULLWIDTH LEFT SQUARE BRACKET ([) -->
13256
+ \u005D <!-- U+005D RIGHT SQUARE BRACKET (]) -->
13257
+ \uFF3D <!-- U+FF3D FULLWIDTH RIGHT SQUARE BRACKET (]) -->
13258
+ \u3008 <!-- U+3008 LEFT ANGLE BRACKET (〈) -->
13259
+ \u3009 <!-- U+3009 RIGHT ANGLE BRACKET (〉) -->
13260
+ \u3016 <!-- U+3016 LEFT WHITE LENTICULAR BRACKET (〖) -->
13261
+ \u3017 <!-- U+3017 RIGHT WHITE LENTICULAR BRACKET (〗) -->
13262
+
13263
+ \u301A <!-- U+301A LEFT WHITE SQUARE BRACKET (〚) -->
13264
+ \u301B <!-- U+301B RIGHT WHITE SQUARE BRACKET (〛) -->
13265
+ \u301C <!-- U+301C WAVE DASH (〜) -->
13266
+ \u3030 <!-- U+3030 WAVY DASH (〰 )-->
13267
+ \u30FC <!-- U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK (ー) -->
13268
+ \u2329 <!-- U+2329 LEFT-POINTING ANGLE BRACKET (〈) -->
13269
+ \u232A <!-- U+232A RIGHT-POINTING ANGLE BRACKET (〉) -->
13270
+ \u3018 <!-- U+3018 LEFT WHITE TORTOISE SHELL BRACKET (〘) -->
13271
+ \u3019 <!-- U+3019 RIGHT WHITE TORTOISE SHELL BRACKET (〙) -->
13272
+ \u30A0 <!-- U+30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN (゠) -->
13273
+ \uFE59 <!-- U+FE59 SMALL LEFT PARENTHESIS (﹙) -->
13274
+ \uFE5A <!-- U+FE5A SMALL RIGHT PARENTHESIS (﹚) -->
13275
+ \uFE5B <!-- U+FE5B SMALL LEFT CURLY BRACKET (﹛) -->
13276
+ \uFE5C <!-- U+FE5C SMALL RIGHT CURLY BRACKET (﹜) -->
13277
+ \uFE5D <!-- U+FE5D SMALL LEFT TORTOISE SHELL BRACKET (﹝) -->
13278
+ \uFE5E <!-- U+FE5E SMALL RIGHT TORTOISE SHELL BRACKET (﹞) -->
13279
+ \uFF5C <!-- U+FF5C FULLWIDTH VERTICAL LINE (|) -->
13280
+ \uFF5F <!-- U+FF5F FULLWIDTH LEFT WHITE PARENTHESIS (⦅) -->
13281
+ \uFF60 <!-- U+FF60 FULLWIDTH RIGHT WHITE PARENTHESIS (⦆) -->
13282
+ \uFFE3 <!-- U+FFE3 FULLWIDTH MACRON ( ̄) -->
13283
+ \uFF3F <!-- U+FF3F FULLWIDTH LOW LINE (_) -->
13284
+ \uFF5E <!-- U+FF5E FULLWIDTH TILDE (~) -->
13285
+ <!-- Rotate 180° -->
13286
+ \u309C <!-- U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜) -->
13287
+ \u3002 <!-- U+3002 IDEOGRAPHIC FULL STOP (。) -->
13288
+ \uFE52 <!-- U+FE52 SMALL FULL STOP (﹒) -->
13289
+ \uFF0E <!-- U+FF0E FULLWIDTH FULL STOP (.) -->
13290
+ ]</xsl:variable>
13291
+ <xsl:variable name="regex_ja_spec"><xsl:value-of select="translate(normalize-space($regex_ja_spec_), ' ', '')"/></xsl:variable>
12815
13292
  <xsl:template name="insertVerticalChar">
12816
13293
  <xsl:param name="str"/>
12817
13294
  <xsl:param name="writing-mode">lr-tb</xsl:param>
12818
13295
  <xsl:param name="reference-orientation">90</xsl:param>
12819
- <xsl:if test="string-length($str) &gt; 0">
12820
- <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm">
12821
- <xsl:if test="normalize-space($writing-mode) != ''">
12822
- <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
12823
- <xsl:attribute name="reference-orientation">90</xsl:attribute>
12824
- </xsl:if>
12825
- <xsl:variable name="char" select="substring($str,1,1)"/>
12826
- <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
12827
- <xsl:attribute name="reference-orientation">0</xsl:attribute>
13296
+ <xsl:param name="add_zero_width_space">false</xsl:param>
13297
+ <xsl:choose>
13298
+ <xsl:when test="ancestor::*[local-name() = 'span'][@class = 'norotate']">
13299
+ <xsl:value-of select="$str"/>
13300
+ </xsl:when>
13301
+ <xsl:otherwise>
13302
+ <xsl:if test="string-length($str) &gt; 0">
13303
+ <xsl:variable name="horizontal_mode" select="normalize-space(ancestor::*[local-name() = 'span'][@class = 'horizontal'] and 1 = 1)"/>
13304
+ <xsl:variable name="char" select="substring($str,1,1)"/>
13305
+ <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm">
13306
+ <xsl:if test="normalize-space($writing-mode) != ''">
13307
+ <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
13308
+ <xsl:attribute name="reference-orientation">90</xsl:attribute>
13309
+ </xsl:if>
13310
+ <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
13311
+ <xsl:attribute name="reference-orientation">0</xsl:attribute>
13312
+ </xsl:if>
13313
+ <xsl:if test="$char = '゜' or $char = '。' or $char = '﹒' or $char = '.'">
13314
+ <!-- Rotate 180°:
13315
+ U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜)
13316
+ U+3002 IDEOGRAPHIC FULL STOP (。)
13317
+ U+FE52 SMALL FULL STOP (﹒)
13318
+ U+FF0E FULLWIDTH FULL STOP (.)
13319
+ -->
13320
+ <xsl:attribute name="reference-orientation">-90</xsl:attribute>
13321
+ </xsl:if>
13322
+ <fo:block-container width="1em">
13323
+ <fo:block line-height="1em">
13324
+ <xsl:choose>
13325
+ <xsl:when test="$horizontal_mode = 'true'">
13326
+ <xsl:value-of select="$str"/>
13327
+ </xsl:when>
13328
+ <xsl:otherwise>
13329
+ <xsl:value-of select="$char"/>
13330
+ </xsl:otherwise>
13331
+ </xsl:choose>
13332
+ </fo:block>
13333
+ </fo:block-container>
13334
+ </fo:inline-container>
13335
+ <xsl:if test="$add_zero_width_space = 'true' and ($char = ',' or $char = '.' or $char = ' ' or $char = '·' or $char = ')' or $char = ']' or $char = '}')"><xsl:value-of select="$zero_width_space"/></xsl:if>
13336
+
13337
+ <xsl:if test="$horizontal_mode = 'false'">
13338
+ <xsl:call-template name="insertVerticalChar">
13339
+ <xsl:with-param name="str" select="substring($str, 2)"/>
13340
+ <xsl:with-param name="writing-mode" select="$writing-mode"/>
13341
+ <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
13342
+ <xsl:with-param name="add_zero_width_space" select="$add_zero_width_space"/>
13343
+ </xsl:call-template>
13344
+ </xsl:if>
12828
13345
  </xsl:if>
12829
- <fo:block-container width="1em">
12830
- <fo:block line-height="1em"><xsl:value-of select="$char"/></fo:block>
12831
- </fo:block-container>
12832
- </fo:inline-container>
12833
- <xsl:call-template name="insertVerticalChar">
12834
- <xsl:with-param name="str" select="substring($str, 2)"/>
12835
- <xsl:with-param name="writing-mode" select="$writing-mode"/>
12836
- <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
12837
- </xsl:call-template>
12838
- </xsl:if>
13346
+ </xsl:otherwise>
13347
+ </xsl:choose>
12839
13348
  </xsl:template>
12840
13349
 
12841
13350
  <xsl:template name="number-to-words">