metanorma-plateau 0.1.10 → 0.1.12

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: f474578bf251dbdf549e093c36ae63801cc828b9f5d5d6a580b422777efa1647
4
- data.tar.gz: 9de3f8896b7c79ce3a4d017e6f23725dd7a46f12cba249c525c0e81069bb91dd
3
+ metadata.gz: 571943b73665f89f8c25e412f37d2d5720894b3ec070087e34efbb2fa4bd7a27
4
+ data.tar.gz: 466a954b0a2e650813d9ed13b73a1c19804589fa4a7a6044a12611ac4deee683
5
5
  SHA512:
6
- metadata.gz: 5630ef34150a346c8b3c9c653483a1e6e683e15458d9adb08639252984d67b325dde8d4a14144200a0aa740863839dd8abf92b02e0c8d198da0f9a21ca69f7e7
7
- data.tar.gz: bd8a86b5914133550133f5f0270e8240f53acc83a8896760c8ac82ef3c55fff30572fed1801712b9dcffa273eacf4c55f63c546b56ffa99a6ba3c159d7ba0bfb
6
+ metadata.gz: 38e5481ee524a7efd6c84d310a4be4b47d0d5010d0b8b861b870a7593915a68cad88ba4ef9179d679de50721302d74e91a520d394147eb8e32c6ba084006a985
7
+ data.tar.gz: b1dd2d39da5444ae778c17f9396ac48b8c5586034fbb93d22f10a23e6f308e212d34af439e73ac21eb115e9c0730df33876ffc547b9ed11a41a401df93774fc0
@@ -21,8 +21,8 @@ module IsoDoc
21
21
  end
22
22
 
23
23
  def bibrenderer(options = {})
24
- ::Relaton::Render::Jis::General.new(options.merge(language: @lang,
25
- i18nhash: @i18n.get))
24
+ ::Relaton::Render::Jis::General.new(options
25
+ .merge(language: @lang, i18nhash: @i18n.get))
26
26
  end
27
27
  end
28
28
  end
@@ -174,8 +174,27 @@
174
174
  <xsl:with-param name="contents" select="$contents"/>
175
175
  </xsl:call-template>
176
176
 
177
+ <!-- <xsl:if test="$debug = 'true'">
178
+ <xsl:message>start contents redirect</xsl:message>
179
+ <redirect:write file="contents.xml">
180
+ <xsl:copy-of select="$contents"/>
181
+ </redirect:write>
182
+ <xsl:message>end contents redirect</xsl:message>
183
+ </xsl:if> -->
184
+
185
+ <xsl:variable name="updated_xml_pres">
186
+ <xsl:apply-templates mode="update_xml_pres"/>
187
+ </xsl:variable>
188
+
189
+ <!-- <xsl:message>start redirect</xsl:message>
190
+ <redirect:write file="update_xml_pres.xml">
191
+ <xsl:copy-of select="$updated_xml_pres"/>
192
+ </redirect:write>
193
+ <xsl:message>end redirect</xsl:message> -->
194
+
177
195
  <xsl:variable name="updated_xml_step1">
178
- <xsl:apply-templates mode="update_xml_step1"/>
196
+ <!-- <xsl:apply-templates mode="update_xml_step1"/> -->
197
+ <xsl:apply-templates select="xalan:nodeset($updated_xml_pres)" mode="update_xml_step1"/>
179
198
  </xsl:variable>
180
199
  <!-- DEBUG: updated_xml_step1=<xsl:copy-of select="$updated_xml_step1"/> -->
181
200
  <!-- <xsl:message>start redirect</xsl:message>
@@ -228,13 +247,6 @@
228
247
  </xsl:if>
229
248
  <xsl:call-template name="insertHeader"/>
230
249
  <fo:flow flow-name="xsl-region-body">
231
- <!-- <xsl:if test="$debug = 'true'"> -->
232
- <!-- <xsl:message>start contents redirect</xsl:message>
233
- <redirect:write file="contents.xml">
234
- <xsl:copy-of select="$contents"/>
235
- </redirect:write>
236
- <xsl:message>end contents redirect</xsl:message> -->
237
- <!-- </xsl:if> -->
238
250
 
239
251
  <!-- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() = 'clause'][@type = 'toc']">
240
252
  <xsl:with-param name="num" select="$num"/>
@@ -791,11 +803,11 @@
791
803
  <!-- ============================= -->
792
804
 
793
805
  <!-- element with title -->
794
- <xsl:template match="*[plateau:title]" mode="contents">
806
+ <xsl:template match="*[plateau:title or plateau:fmt-title]" mode="contents">
795
807
 
796
808
  <xsl:variable name="level">
797
809
  <xsl:call-template name="getLevel">
798
- <xsl:with-param name="depth" select="plateau:title/@depth"/>
810
+ <xsl:with-param name="depth" select="plateau:fmt-title/@depth | plateau:title/@depth"/>
799
811
  </xsl:call-template>
800
812
  </xsl:variable>
801
813
 
@@ -1863,7 +1875,7 @@
1863
1875
  </svg>
1864
1876
  </xsl:variable>
1865
1877
 
1866
- <xsl:strip-space elements="plateau:xref"/>
1878
+ <!-- <xsl:strip-space elements="plateau:xref"/> -->
1867
1879
 
1868
1880
  <xsl:variable name="namespace_full" select="namespace-uri(/*)"/> <!-- example: https://www.metanorma.org/ns/iso -->
1869
1881
  <xsl:variable name="root_element" select="local-name(/*)"/> <!-- example: iso-standard -->
@@ -2837,6 +2849,10 @@
2837
2849
 
2838
2850
  <xsl:template name="refine_termnote-name-style">
2839
2851
 
2852
+ <!-- <xsl:if test="$namespace = 'ieee'">
2853
+ <xsl:attribute name="padding-right">0mm</xsl:attribute>
2854
+ </xsl:if> -->
2855
+
2840
2856
  </xsl:template>
2841
2857
 
2842
2858
  <xsl:attribute-set name="termnote-p-style">
@@ -3497,9 +3513,21 @@
3497
3513
  <xsl:template name="processTables_Contents">
3498
3514
  <tables>
3499
3515
  <xsl:for-each select="//*[local-name() = 'table'][not(ancestor::*[local-name() = 'metanorma-extension'])][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
3500
- <table id="{@id}" alt-text="{*[local-name() = 'name']}">
3501
- <xsl:copy-of select="*[local-name() = 'name']"/>
3502
- </table>
3516
+ <xsl:choose>
3517
+ <xsl:when test="*[local-name() = 'fmt-name']">
3518
+ <xsl:variable name="fmt_name">
3519
+ <xsl:apply-templates select="*[local-name() = 'fmt-name']" mode="update_xml_step1"/>
3520
+ </xsl:variable>
3521
+ <table id="{@id}" alt-text="{normalize-space($fmt_name)}">
3522
+ <xsl:copy-of select="$fmt_name"/>
3523
+ </table>
3524
+ </xsl:when>
3525
+ <xsl:otherwise>
3526
+ <table id="{@id}" alt-text="{*[local-name() = 'name']}">
3527
+ <xsl:copy-of select="*[local-name() = 'name']"/>
3528
+ </table>
3529
+ </xsl:otherwise>
3530
+ </xsl:choose>
3503
3531
  </xsl:for-each>
3504
3532
  </tables>
3505
3533
  </xsl:template>
@@ -3507,9 +3535,21 @@
3507
3535
  <xsl:template name="processFigures_Contents">
3508
3536
  <figures>
3509
3537
  <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) != '']">
3510
- <figure id="{@id}" alt-text="{*[local-name() = 'name']}">
3511
- <xsl:copy-of select="*[local-name() = 'name']"/>
3512
- </figure>
3538
+ <xsl:choose>
3539
+ <xsl:when test="*[local-name() = 'fmt-name']">
3540
+ <xsl:variable name="fmt_name">
3541
+ <xsl:apply-templates select="*[local-name() = 'fmt-name']" mode="update_xml_step1"/>
3542
+ </xsl:variable>
3543
+ <figure id="{@id}" alt-text="{normalize-space($fmt_name)}">
3544
+ <xsl:copy-of select="$fmt_name"/>
3545
+ </figure>
3546
+ </xsl:when>
3547
+ <xsl:otherwise>
3548
+ <figure id="{@id}" alt-text="{*[local-name() = 'name']}">
3549
+ <xsl:copy-of select="*[local-name() = 'name']"/>
3550
+ </figure>
3551
+ </xsl:otherwise>
3552
+ </xsl:choose>
3513
3553
  </xsl:for-each>
3514
3554
  </figures>
3515
3555
  </xsl:template>
@@ -8259,6 +8299,8 @@
8259
8299
 
8260
8300
  <fo:inline xsl:use-attribute-sets="note-name-style" role="SKIP">
8261
8301
 
8302
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'tab']" mode="tab"/>
8303
+
8262
8304
  <xsl:call-template name="refine_note-name-style"/>
8263
8305
 
8264
8306
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
@@ -8315,10 +8357,6 @@
8315
8357
 
8316
8358
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
8317
8359
 
8318
- <xsl:if test="not(*[local-name() = 'name']/following-sibling::node()[1][self::text()][normalize-space()=''])">
8319
- <xsl:attribute name="padding-right">1mm</xsl:attribute>
8320
- </xsl:if>
8321
-
8322
8360
  <xsl:call-template name="refine_termnote-name-style"/>
8323
8361
 
8324
8362
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
@@ -8465,17 +8503,29 @@
8465
8503
  <!-- Example: Dimensions in millimeters -->
8466
8504
  <xsl:apply-templates select="*[local-name() = 'note'][@type = 'units']"/>
8467
8505
 
8506
+ <xsl:variable name="show_figure_key_in_block_container">
8507
+ true
8508
+ </xsl:variable>
8509
+
8468
8510
  <fo:block xsl:use-attribute-sets="figure-style" role="SKIP">
8469
8511
  <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note' and @type = 'units')]"/>
8470
8512
  </fo:block>
8471
- <xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
8472
- <xsl:call-template name="note"/>
8473
- </xsl:for-each>
8474
- <xsl:call-template name="fn_display_figure"/>
8513
+
8514
+ <xsl:if test="normalize-space($show_figure_key_in_block_container) = 'true'">
8515
+ <xsl:call-template name="showFigureKey"/>
8516
+ </xsl:if>
8475
8517
 
8476
8518
  <xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
8477
8519
 
8478
8520
  </fo:block-container>
8521
+
8522
+ </xsl:template>
8523
+
8524
+ <xsl:template name="showFigureKey">
8525
+ <xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
8526
+ <xsl:call-template name="note"/>
8527
+ </xsl:for-each>
8528
+ <xsl:call-template name="fn_display_figure"/>
8479
8529
  </xsl:template>
8480
8530
 
8481
8531
  <xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
@@ -8671,6 +8721,22 @@
8671
8721
  </xsl:if>
8672
8722
  </xsl:template>
8673
8723
 
8724
+ <xsl:template name="getImageSrc">
8725
+ <xsl:choose>
8726
+ <xsl:when test="not(starts-with(@src, 'data:'))">
8727
+ <xsl:choose>
8728
+ <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8729
+ <xsl:value-of select="@src"/>
8730
+ </xsl:when>
8731
+ <xsl:otherwise>
8732
+ <xsl:value-of select="concat($basepath, @src)"/>
8733
+ </xsl:otherwise>
8734
+ </xsl:choose>
8735
+ </xsl:when>
8736
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
8737
+ </xsl:choose>
8738
+ </xsl:template>
8739
+
8674
8740
  <xsl:template name="getImageScale">
8675
8741
  <xsl:param name="indent"/>
8676
8742
  <xsl:variable name="indent_left">
@@ -8680,19 +8746,7 @@
8680
8746
  </xsl:choose>
8681
8747
  </xsl:variable>
8682
8748
  <xsl:variable name="img_src">
8683
- <xsl:choose>
8684
- <xsl:when test="not(starts-with(@src, 'data:'))">
8685
- <xsl:choose>
8686
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
8687
- <xsl:value-of select="@src"/>
8688
- </xsl:when>
8689
- <xsl:otherwise>
8690
- <xsl:value-of select="concat($basepath, @src)"/>
8691
- </xsl:otherwise>
8692
- </xsl:choose>
8693
- </xsl:when>
8694
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
8695
- </xsl:choose>
8749
+ <xsl:call-template name="getImageSrc"/>
8696
8750
  </xsl:variable>
8697
8751
 
8698
8752
  <xsl:variable name="image_width_effective">
@@ -8700,10 +8754,15 @@
8700
8754
  <xsl:value-of select="$width_effective - number($indent_left)"/>
8701
8755
 
8702
8756
  </xsl:variable>
8757
+ <xsl:variable name="image_height_effective" select="$height_effective - number($indent_left)"/>
8703
8758
  <!-- <xsl:message>width_effective=<xsl:value-of select="$width_effective"/></xsl:message>
8704
8759
  <xsl:message>indent_left=<xsl:value-of select="$indent_left"/></xsl:message>
8705
8760
  <xsl:message>image_width_effective=<xsl:value-of select="$image_width_effective"/> for <xsl:value-of select="ancestor::ogc:p[1]/@id"/></xsl:message> -->
8706
- <xsl:variable name="scale" select="java:org.metanorma.fop.utils.ImageUtils.getImageScale($img_src, $image_width_effective, $height_effective)"/>
8761
+ <xsl:variable name="scale">
8762
+
8763
+ <xsl:value-of select="java:org.metanorma.fop.utils.ImageUtils.getImageScale($img_src, $image_width_effective, $height_effective)"/>
8764
+
8765
+ </xsl:variable>
8707
8766
  <xsl:value-of select="$scale"/>
8708
8767
  </xsl:template>
8709
8768
 
@@ -9256,20 +9315,48 @@
9256
9315
  <xsl:template match="*[local-name() = 'emf']"/>
9257
9316
 
9258
9317
  <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">
9318
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-name'])">
9319
+ <xsl:apply-templates mode="contents"/>
9320
+ <xsl:text> </xsl:text>
9321
+ </xsl:if>
9322
+ </xsl:template>
9323
+
9324
+ <xsl:template match="*[local-name() = 'title'][following-sibling::*[1][local-name() = 'fmt-title']]" mode="contents"/>
9325
+
9326
+ <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">
9259
9327
  <xsl:apply-templates mode="contents"/>
9260
9328
  <xsl:text> </xsl:text>
9261
9329
  </xsl:template>
9262
9330
 
9263
9331
  <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">
9332
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-name'])">
9333
+ <xsl:apply-templates mode="bookmarks"/>
9334
+ <xsl:text> </xsl:text>
9335
+ </xsl:if>
9336
+ </xsl:template>
9337
+
9338
+ <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">
9264
9339
  <xsl:apply-templates mode="bookmarks"/>
9265
9340
  <xsl:text> </xsl:text>
9266
9341
  </xsl:template>
9267
9342
 
9268
9343
  <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">
9344
+ <xsl:if test="not(../following-sibling::*[1][local-name() = 'fmt-name'])">
9345
+ <xsl:value-of select="."/>
9346
+ </xsl:if>
9347
+ </xsl:template>
9348
+
9349
+ <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">
9269
9350
  <xsl:value-of select="."/>
9270
9351
  </xsl:template>
9271
9352
 
9272
9353
  <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">
9354
+ <xsl:if test="not(../following-sibling::*[1][local-name() = 'fmt-name'])">
9355
+ <xsl:value-of select="."/>
9356
+ </xsl:if>
9357
+ </xsl:template>
9358
+
9359
+ <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">
9273
9360
  <xsl:value-of select="."/>
9274
9361
  </xsl:template>
9275
9362
 
@@ -9290,7 +9377,7 @@
9290
9377
  </xsl:template>
9291
9378
 
9292
9379
  <!-- special case: ignore section-title if @depth different than @depth of parent clause, or @depth of parent clause = 1 -->
9293
- <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"/>
9380
+ <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"/>
9294
9381
 
9295
9382
  <xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" name="contents_section-title" mode="contents">
9296
9383
  <xsl:variable name="level">
@@ -9302,6 +9389,9 @@
9302
9389
  <xsl:variable name="section">
9303
9390
  <xsl:choose>
9304
9391
  <xsl:when test="@type = 'section-title'"/>
9392
+ <xsl:when test="*[local-name() = 'span'][@class = 'fmt-caption-delim']">
9393
+ <xsl:value-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/preceding-sibling::node()"/>
9394
+ </xsl:when>
9305
9395
  <xsl:otherwise>
9306
9396
  <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
9307
9397
  </xsl:otherwise>
@@ -9324,6 +9414,19 @@
9324
9414
 
9325
9415
  <xsl:variable name="title">
9326
9416
  <xsl:choose>
9417
+ <!-- https://github.com/metanorma/mn-native-pdf/issues/770 -->
9418
+ <xsl:when test="*[local-name() = 'span'][@class = 'fmt-caption-delim']">
9419
+ <xsl:choose>
9420
+ <xsl:when test="@type = 'section-title'">
9421
+ <xsl:value-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/preceding-sibling::node()"/>
9422
+ <xsl:text>: </xsl:text>
9423
+ <xsl:copy-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/following-sibling::node()[not(local-name = 'fmt-xref-label')]"/>
9424
+ </xsl:when>
9425
+ <xsl:otherwise>
9426
+ <xsl:copy-of select="*[local-name() = 'span'][@class = 'fmt-caption-delim'][1]/following-sibling::node()[not(local-name = 'fmt-xref-label')]"/>
9427
+ </xsl:otherwise>
9428
+ </xsl:choose>
9429
+ </xsl:when>
9327
9430
  <xsl:when test="*[local-name() = 'tab']">
9328
9431
  <xsl:choose>
9329
9432
  <xsl:when test="@type = 'section-title'">
@@ -9359,7 +9462,7 @@
9359
9462
  <xsl:apply-templates mode="bookmarks"/>
9360
9463
  </xsl:template>
9361
9464
 
9362
- <xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
9465
+ <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">
9363
9466
  <xsl:apply-templates select="."/>
9364
9467
  </xsl:template>
9365
9468
 
@@ -9372,6 +9475,10 @@
9372
9475
  <xsl:apply-templates mode="contents"/>
9373
9476
  </xsl:template>
9374
9477
 
9478
+ <xsl:template match="*[local-name() = 'semx']" mode="contents">
9479
+ <xsl:apply-templates mode="contents"/>
9480
+ </xsl:template>
9481
+
9375
9482
  <xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
9376
9483
  <xsl:apply-templates mode="bookmarks"/>
9377
9484
  </xsl:template>
@@ -9381,9 +9488,14 @@
9381
9488
  <xsl:apply-templates mode="bookmarks"/>
9382
9489
  </xsl:template>
9383
9490
 
9491
+ <xsl:template match="*[local-name() = 'semx']" mode="bookmarks">
9492
+ <xsl:apply-templates mode="bookmarks"/>
9493
+ </xsl:template>
9494
+
9384
9495
  <!-- Bookmarks -->
9385
9496
  <xsl:template name="addBookmarks">
9386
9497
  <xsl:param name="contents"/>
9498
+ <xsl:param name="contents_addon"/>
9387
9499
  <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
9388
9500
  <xsl:if test="$contents_nodes//item">
9389
9501
  <fo:bookmark-tree>
@@ -9481,6 +9593,9 @@
9481
9593
  </xsl:otherwise>
9482
9594
  </xsl:choose>
9483
9595
 
9596
+ <!-- for $namespace = 'nist-sp' $namespace = 'ogc' $namespace = 'ogc-white-paper' -->
9597
+ <xsl:copy-of select="$contents_addon"/>
9598
+
9484
9599
  </fo:bookmark-tree>
9485
9600
  </xsl:if>
9486
9601
  </xsl:template>
@@ -9634,6 +9749,16 @@
9634
9749
  <!-- ====== -->
9635
9750
  <!-- ====== -->
9636
9751
  <xsl:template match="*[local-name() = 'title']" mode="contents_item">
9752
+ <xsl:param name="mode">bookmarks</xsl:param>
9753
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-title'])">
9754
+ <xsl:apply-templates mode="contents_item">
9755
+ <xsl:with-param name="mode" select="$mode"/>
9756
+ </xsl:apply-templates>
9757
+ <!-- <xsl:text> </xsl:text> -->
9758
+ </xsl:if>
9759
+ </xsl:template>
9760
+
9761
+ <xsl:template match="*[local-name() = 'fmt-title']" mode="contents_item">
9637
9762
  <xsl:param name="mode">bookmarks</xsl:param>
9638
9763
  <xsl:apply-templates mode="contents_item">
9639
9764
  <xsl:with-param name="mode" select="$mode"/>
@@ -9641,12 +9766,38 @@
9641
9766
  <!-- <xsl:text> </xsl:text> -->
9642
9767
  </xsl:template>
9643
9768
 
9769
+ <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">
9770
+ <xsl:apply-templates mode="contents_item"/>
9771
+ </xsl:template>
9772
+
9773
+ <xsl:template match="*[local-name() = 'semx']" mode="contents_item">
9774
+ <xsl:apply-templates mode="contents_item"/>
9775
+ </xsl:template>
9776
+
9777
+ <xsl:template match="*[local-name() = 'fmt-xref-label']" mode="contents_item"/>
9778
+
9644
9779
  <xsl:template name="getSection">
9645
- <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
9780
+ <xsl:choose>
9781
+ <xsl:when test="*[local-name() = 'fmt-title']">
9782
+ <xsl:variable name="fmt_title_section">
9783
+ <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')]"/>
9784
+ </xsl:variable>
9785
+ <xsl:value-of select="normalize-space($fmt_title_section)"/>
9786
+ </xsl:when>
9787
+ <xsl:otherwise>
9788
+ <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
9789
+ </xsl:otherwise>
9790
+ </xsl:choose>
9646
9791
  </xsl:template>
9647
9792
 
9648
9793
  <xsl:template name="getName">
9649
9794
  <xsl:choose>
9795
+ <xsl:when test="*[local-name() = 'fmt-title']//*[local-name() = 'span'][@class = 'fmt-caption-delim'][*[local-name() = 'tab']]">
9796
+ <xsl:copy-of select="*[local-name() = 'fmt-title']//*[local-name() = 'span'][@class = 'fmt-caption-delim'][*[local-name() = 'tab']][1]/following-sibling::node()"/>
9797
+ </xsl:when>
9798
+ <xsl:when test="*[local-name() = 'fmt-title']">
9799
+ <xsl:copy-of select="*[local-name() = 'fmt-title']/node()"/>
9800
+ </xsl:when>
9650
9801
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
9651
9802
  <xsl:copy-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/following-sibling::node()"/>
9652
9803
  </xsl:when>
@@ -9753,6 +9904,15 @@
9753
9904
  </xsl:template>
9754
9905
 
9755
9906
  <xsl:template match="*[local-name() = 'name']" mode="contents_item">
9907
+ <xsl:param name="mode">bookmarks</xsl:param>
9908
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'fmt-name'])">
9909
+ <xsl:apply-templates mode="contents_item">
9910
+ <xsl:with-param name="mode" select="$mode"/>
9911
+ </xsl:apply-templates>
9912
+ </xsl:if>
9913
+ </xsl:template>
9914
+
9915
+ <xsl:template match="*[local-name() = 'fmt-name']" mode="contents_item">
9756
9916
  <xsl:param name="mode">bookmarks</xsl:param>
9757
9917
  <xsl:apply-templates mode="contents_item">
9758
9918
  <xsl:with-param name="mode" select="$mode"/>
@@ -10589,107 +10749,108 @@
10589
10749
  -->
10590
10750
  <xsl:template match="*[local-name() = 'example']">
10591
10751
 
10592
- <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style" role="SKIP">
10752
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style" role="SKIP">
10593
10753
 
10594
- <xsl:call-template name="setBlockSpanAll"/>
10595
-
10596
- <xsl:call-template name="refine_example-style"/>
10754
+ <xsl:call-template name="setBlockSpanAll"/>
10597
10755
 
10598
- <xsl:variable name="fo_element">
10599
- <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl'] or *[not(local-name() = 'name')][1][local-name() = 'sourcecode']">block</xsl:if>
10600
- block
10601
- </xsl:variable>
10756
+ <xsl:call-template name="refine_example-style"/>
10602
10757
 
10603
- <fo:block-container margin-left="0mm" role="SKIP">
10758
+ <xsl:variable name="fo_element">
10759
+ <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl'] or *[not(local-name() = 'name')][1][local-name() = 'sourcecode']">block</xsl:if>
10760
+ block
10761
+ </xsl:variable>
10604
10762
 
10605
- <xsl:choose>
10763
+ <fo:block-container margin-left="0mm" role="SKIP">
10606
10764
 
10607
- <xsl:when test="contains(normalize-space($fo_element), 'block')">
10765
+ <xsl:choose>
10608
10766
 
10609
- <!-- display name 'EXAMPLE' in a separate block -->
10610
- <fo:block>
10611
- <xsl:apply-templates select="*[local-name()='name']">
10612
- <xsl:with-param name="fo_element" select="$fo_element"/>
10613
- </xsl:apply-templates>
10614
- </fo:block>
10767
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
10615
10768
 
10616
- <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
10617
- <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
10618
- <xsl:variable name="example_body">
10619
- <xsl:apply-templates select="node()[not(local-name() = 'name')]">
10769
+ <!-- display name 'EXAMPLE' in a separate block -->
10770
+ <fo:block>
10771
+ <xsl:apply-templates select="*[local-name()='name']">
10620
10772
  <xsl:with-param name="fo_element" select="$fo_element"/>
10621
10773
  </xsl:apply-templates>
10774
+ </fo:block>
10775
+
10776
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
10777
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
10778
+ <xsl:variable name="example_body">
10779
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
10780
+ <xsl:with-param name="fo_element" select="$fo_element"/>
10781
+ </xsl:apply-templates>
10782
+ </xsl:variable>
10783
+ <xsl:choose>
10784
+ <xsl:when test="xalan:nodeset($example_body)/*">
10785
+ <xsl:copy-of select="$example_body"/>
10786
+ </xsl:when>
10787
+ <xsl:otherwise><fo:block/><!-- prevent empty block-container --></xsl:otherwise>
10788
+ </xsl:choose>
10789
+ </fo:block-container>
10790
+ </fo:block-container>
10791
+ </xsl:when> <!-- end block -->
10792
+
10793
+ <xsl:when test="contains(normalize-space($fo_element), 'list')">
10794
+
10795
+ <xsl:variable name="provisional_distance_between_starts_">
10796
+ 7
10622
10797
  </xsl:variable>
10623
- <xsl:choose>
10624
- <xsl:when test="xalan:nodeset($example_body)/*">
10625
- <xsl:copy-of select="$example_body"/>
10626
- </xsl:when>
10627
- <xsl:otherwise><fo:block/><!-- prevent empty block-container --></xsl:otherwise>
10628
- </xsl:choose>
10629
- </fo:block-container>
10630
- </fo:block-container>
10631
- </xsl:when> <!-- end block -->
10798
+ <xsl:variable name="provisional_distance_between_starts" select="normalize-space($provisional_distance_between_starts_)"/>
10799
+ <xsl:variable name="indent_">
10800
+ 0
10801
+ </xsl:variable>
10802
+ <xsl:variable name="indent" select="normalize-space($indent_)"/>
10632
10803
 
10633
- <xsl:when test="contains(normalize-space($fo_element), 'list')">
10804
+ <fo:list-block provisional-distance-between-starts="{$provisional_distance_between_starts}mm">
10805
+ <fo:list-item>
10806
+ <fo:list-item-label start-indent="{$indent}mm" end-indent="label-end()">
10807
+ <fo:block>
10808
+ <xsl:apply-templates select="*[local-name()='name']">
10809
+ <xsl:with-param name="fo_element">block</xsl:with-param>
10810
+ </xsl:apply-templates>
10811
+ </fo:block>
10812
+ </fo:list-item-label>
10813
+ <fo:list-item-body start-indent="body-start()">
10814
+ <fo:block>
10815
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
10816
+ <xsl:with-param name="fo_element" select="$fo_element"/>
10817
+ </xsl:apply-templates>
10818
+ </fo:block>
10819
+ </fo:list-item-body>
10820
+ </fo:list-item>
10821
+ </fo:list-block>
10822
+ </xsl:when> <!-- end list -->
10634
10823
 
10635
- <xsl:variable name="provisional_distance_between_starts_">
10636
- 7
10637
- </xsl:variable>
10638
- <xsl:variable name="provisional_distance_between_starts" select="normalize-space($provisional_distance_between_starts_)"/>
10639
- <xsl:variable name="indent_">
10640
- 0
10641
- </xsl:variable>
10642
- <xsl:variable name="indent" select="normalize-space($indent_)"/>
10824
+ <xsl:otherwise> <!-- inline -->
10643
10825
 
10644
- <fo:list-block provisional-distance-between-starts="{$provisional_distance_between_starts}mm">
10645
- <fo:list-item>
10646
- <fo:list-item-label start-indent="{$indent}mm" end-indent="label-end()">
10647
- <fo:block>
10648
- <xsl:apply-templates select="*[local-name()='name']">
10649
- <xsl:with-param name="fo_element">block</xsl:with-param>
10650
- </xsl:apply-templates>
10651
- </fo:block>
10652
- </fo:list-item-label>
10653
- <fo:list-item-body start-indent="body-start()">
10654
- <fo:block>
10655
- <xsl:apply-templates select="node()[not(local-name() = 'name')]">
10826
+ <!-- display 'EXAMPLE' and first element in the same line -->
10827
+ <fo:block>
10828
+ <xsl:apply-templates select="*[local-name()='name']">
10829
+ <xsl:with-param name="fo_element" select="$fo_element"/>
10830
+ </xsl:apply-templates>
10831
+ <fo:inline>
10832
+ <xsl:apply-templates select="*[not(local-name() = 'name')][1]">
10656
10833
  <xsl:with-param name="fo_element" select="$fo_element"/>
10657
10834
  </xsl:apply-templates>
10658
- </fo:block>
10659
- </fo:list-item-body>
10660
- </fo:list-item>
10661
- </fo:list-block>
10662
- </xsl:when> <!-- end list -->
10663
-
10664
- <xsl:otherwise> <!-- inline -->
10835
+ </fo:inline>
10836
+ </fo:block>
10665
10837
 
10666
- <!-- display 'EXAMPLE' and first element in the same line -->
10667
- <fo:block>
10668
- <xsl:apply-templates select="*[local-name()='name']">
10669
- <xsl:with-param name="fo_element" select="$fo_element"/>
10670
- </xsl:apply-templates>
10671
- <fo:inline>
10672
- <xsl:apply-templates select="*[not(local-name() = 'name')][1]">
10673
- <xsl:with-param name="fo_element" select="$fo_element"/>
10674
- </xsl:apply-templates>
10675
- </fo:inline>
10676
- </fo:block>
10838
+ <xsl:if test="*[not(local-name() = 'name')][position() &gt; 1]">
10839
+ <!-- display further elements in blocks -->
10840
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
10841
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
10842
+ <xsl:apply-templates select="*[not(local-name() = 'name')][position() &gt; 1]">
10843
+ <xsl:with-param name="fo_element" select="'block'"/>
10844
+ </xsl:apply-templates>
10845
+ </fo:block-container>
10846
+ </fo:block-container>
10847
+ </xsl:if>
10848
+ </xsl:otherwise> <!-- end inline -->
10677
10849
 
10678
- <xsl:if test="*[not(local-name() = 'name')][position() &gt; 1]">
10679
- <!-- display further elements in blocks -->
10680
- <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
10681
- <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
10682
- <xsl:apply-templates select="*[not(local-name() = 'name')][position() &gt; 1]">
10683
- <xsl:with-param name="fo_element" select="'block'"/>
10684
- </xsl:apply-templates>
10685
- </fo:block-container>
10686
- </fo:block-container>
10687
- </xsl:if>
10688
- </xsl:otherwise> <!-- end inline -->
10850
+ </xsl:choose>
10851
+ </fo:block-container>
10852
+ </fo:block-container>
10689
10853
 
10690
- </xsl:choose>
10691
- </fo:block-container>
10692
- </fo:block-container>
10693
10854
  </xsl:template>
10694
10855
 
10695
10856
  <xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']">
@@ -11064,6 +11225,13 @@
11064
11225
 
11065
11226
  </xsl:template> <!-- tab -->
11066
11227
 
11228
+ <xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']/*[local-name() = 'tab']" priority="2"/>
11229
+ <xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']/*[local-name() = 'tab']" priority="2"/>
11230
+
11231
+ <xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']/*[local-name() = 'tab']" mode="tab">
11232
+
11233
+ </xsl:template>
11234
+
11067
11235
  <xsl:template name="insertNonBreakSpaces">
11068
11236
  <xsl:param name="count"/>
11069
11237
  <xsl:if test="$count &gt; 0">
@@ -12613,6 +12781,10 @@
12613
12781
  <!-- - Remove semantic xml part -->
12614
12782
  <!-- - Remove image/emf (EMF vector image for Word) -->
12615
12783
  <!-- - add @id, redundant for table auto-layout algorithm -->
12784
+ <!-- - process 'passthrough' element -->
12785
+ <!-- - split math by element with @linebreak into maths -->
12786
+ <!-- - rename fmt-title to title, fmt-name to name and another changes to convert new presentation XML to -->
12787
+ <!-- - old XML without significant changes in XSLT -->
12616
12788
  <!-- =========================================================================== -->
12617
12789
  <xsl:template match="@*|node()" mode="update_xml_step1">
12618
12790
  <xsl:copy>
@@ -12620,6 +12792,12 @@
12620
12792
  </xsl:copy>
12621
12793
  </xsl:template>
12622
12794
 
12795
+ <xsl:template match="@*|node()" mode="update_xml_pres">
12796
+ <xsl:copy>
12797
+ <xsl:apply-templates select="@*|node()" mode="update_xml_pres"/>
12798
+ </xsl:copy>
12799
+ </xsl:template>
12800
+
12623
12801
  <!-- change section's order based on @displayorder value -->
12624
12802
  <xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
12625
12803
  <xsl:copy>
@@ -12696,7 +12874,7 @@
12696
12874
  </xsl:template>
12697
12875
 
12698
12876
  <!-- Example with 'class': <span class="stdpublisher">ISO</span> <span class="stddocNumber">10303</span>-<span class="stddocPartNumber">1</span>:<span class="stdyear">1994</span> -->
12699
- <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">
12877
+ <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">
12700
12878
  <xsl:copy>
12701
12879
  <xsl:copy-of select="@*"/>
12702
12880
  <xsl:apply-templates mode="update_xml_step1"/>
@@ -12715,14 +12893,17 @@
12715
12893
 
12716
12894
  <!-- remove semantic xml -->
12717
12895
  <xsl:template match="*[local-name() = 'metanorma-extension']/*[local-name() = 'metanorma']/*[local-name() = 'source']" mode="update_xml_step1"/>
12896
+ <xsl:template match="*[local-name() = 'metanorma-extension']/*[local-name() = 'metanorma']/*[local-name() = 'source']" mode="update_xml_pres"/>
12718
12897
 
12719
12898
  <!-- remove image/emf -->
12720
12899
  <xsl:template match="*[local-name() = 'image']/*[local-name() = 'emf']" mode="update_xml_step1"/>
12900
+ <xsl:template match="*[local-name() = 'image']/*[local-name() = 'emf']" mode="update_xml_pres"/>
12721
12901
 
12722
12902
  <!-- remove preprocess-xslt -->
12723
12903
  <xsl:template match="*[local-name() = 'preprocess-xslt']" mode="update_xml_step1"/>
12904
+ <xsl:template match="*[local-name() = 'preprocess-xslt']" mode="update_xml_pres"/>
12724
12905
 
12725
- <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'])] | *[local-name() = 'bibdata'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'localized-strings']" mode="update_xml_step1">
12906
+ <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">
12726
12907
  <xsl:copy-of select="."/>
12727
12908
  </xsl:template>
12728
12909
 
@@ -12804,6 +12985,77 @@
12804
12985
  <xsl:copy-of select="$maths"/>
12805
12986
  </xsl:template>
12806
12987
 
12988
+ <!-- update new Presentation XML -->
12989
+ <xsl:template match="*[local-name() = 'title'][following-sibling::*[1][local-name() = 'fmt-title']]" mode="update_xml_step1"/>
12990
+ <xsl:template match="*[local-name() = 'title'][following-sibling::*[1][local-name() = 'fmt-title']]" mode="update_xml_pres"/>
12991
+ <xsl:template match="*[local-name() = 'name'][following-sibling::*[1][local-name() = 'fmt-name']]" mode="update_xml_step1"/>
12992
+ <xsl:template match="*[local-name() = 'name'][following-sibling::*[1][local-name() = 'fmt-name']]" mode="update_xml_pres"/>
12993
+ <xsl:template match="*[local-name() = 'section-title'][following-sibling::*[1][local-name() = 'p'][@type = 'section-title' or @type = 'floating-title']]" mode="update_xml_step1"/>
12994
+ <xsl:template match="*[local-name() = 'section-title'][following-sibling::*[1][local-name() = 'p'][@type = 'section-title' or @type = 'floating-title']]" mode="update_xml_pres"/>
12995
+
12996
+ <xsl:template match="*[local-name() = 'p'][@type = 'section-title' or @type = 'floating-title'][preceding-sibling::*[1][local-name() = 'section-title']]" mode="update_xml_step1">
12997
+ <xsl:copy>
12998
+ <xsl:apply-templates select="@*" mode="update_xml_step1"/>
12999
+ <xsl:copy-of select="preceding-sibling::*[1][local-name() = 'section-title']/@depth"/>
13000
+ <xsl:apply-templates select="node()" mode="update_xml_step1"/>
13001
+ </xsl:copy>
13002
+ </xsl:template>
13003
+ <xsl:template match="*[local-name() = 'p'][@type = 'section-title' or @type = 'floating-title'][preceding-sibling::*[1][local-name() = 'section-title']]" mode="update_xml_pres">
13004
+ <xsl:copy>
13005
+ <xsl:apply-templates select="@*" mode="update_xml_pres"/>
13006
+ <xsl:copy-of select="preceding-sibling::*[1][local-name() = 'section-title']/@depth"/>
13007
+ <xsl:apply-templates select="node()" mode="update_xml_pres"/>
13008
+ </xsl:copy>
13009
+ </xsl:template>
13010
+
13011
+ <xsl:template match="*[local-name() = 'fmt-title']"/>
13012
+ <xsl:template match="*[local-name() = 'fmt-title']" mode="update_xml_step1">
13013
+ <xsl:element name="title" namespace="{$namespace_full}">
13014
+ <xsl:copy-of select="@*"/>
13015
+ <xsl:apply-templates mode="update_xml_step1"/>
13016
+ </xsl:element>
13017
+ </xsl:template>
13018
+ <xsl:template match="*[local-name() = 'fmt-title']" mode="update_xml_pres">
13019
+ <xsl:element name="title" namespace="{$namespace_full}">
13020
+ <xsl:copy-of select="@*"/>
13021
+ <xsl:apply-templates mode="update_xml_pres"/>
13022
+ </xsl:element>
13023
+ </xsl:template>
13024
+
13025
+ <xsl:template match="*[local-name() = 'fmt-name']"/>
13026
+ <xsl:template match="*[local-name() = 'fmt-name']" mode="update_xml_step1">
13027
+ <xsl:element name="name" namespace="{$namespace_full}">
13028
+ <xsl:copy-of select="@*"/>
13029
+ <xsl:apply-templates mode="update_xml_step1"/>
13030
+ </xsl:element>
13031
+ </xsl:template>
13032
+ <xsl:template match="*[local-name() = 'fmt-name']" mode="update_xml_pres">
13033
+ <xsl:element name="name" namespace="{$namespace_full}">
13034
+ <xsl:copy-of select="@*"/>
13035
+ <xsl:apply-templates mode="update_xml_pres"/>
13036
+ </xsl:element>
13037
+ </xsl:template>
13038
+
13039
+ <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">
13040
+ <xsl:apply-templates mode="update_xml_step1"/>
13041
+ </xsl:template>
13042
+ <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">
13043
+ <xsl:apply-templates mode="update_xml_pres"/>
13044
+ </xsl:template>
13045
+
13046
+ <xsl:template match="*[local-name() = 'semx']" mode="update_xml_step1">
13047
+ <xsl:apply-templates mode="update_xml_step1"/>
13048
+ </xsl:template>
13049
+ <xsl:template match="*[local-name() = 'semx']" mode="update_xml_pres">
13050
+ <xsl:apply-templates mode="update_xml_pres"/>
13051
+ </xsl:template>
13052
+
13053
+ <xsl:template match="*[local-name() = 'fmt-xref-label']"/>
13054
+ <xsl:template match="*[local-name() = 'fmt-xref-label']" mode="update_xml_step1"/>
13055
+ <xsl:template match="*[local-name() = 'fmt-xref-label']" mode="update_xml_pres"/>
13056
+
13057
+ <!-- END: update new Presentation XML -->
13058
+
12807
13059
  <!-- =========================================================================== -->
12808
13060
  <!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
12809
13061
  <!-- =========================================================================== -->
@@ -13100,7 +13352,7 @@
13100
13352
  <xsl:variable name="non_white_space">[^\s\u3000-\u9FFF]</xsl:variable>
13101
13353
  <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>
13102
13354
 
13103
- <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">
13355
+ <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">
13104
13356
 
13105
13357
  <xsl:variable name="parent" select="local-name(..)"/>
13106
13358
 
@@ -13682,6 +13934,7 @@
13682
13934
  </pdf:catalog>
13683
13935
  <x:xmpmeta xmlns:x="adobe:ns:meta/">
13684
13936
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
13937
+ <!-- Commented after upgrade to Apache FOP 2.10
13685
13938
  <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="">
13686
13939
  <pdfaExtension:schemas>
13687
13940
  <rdf:Bag>
@@ -13714,7 +13967,7 @@
13714
13967
  </rdf:li>
13715
13968
  </rdf:Bag>
13716
13969
  </pdfaExtension:schemas>
13717
- </rdf:Description>
13970
+ </rdf:Description> -->
13718
13971
  <rdf:Description xmlns:pdf="http://ns.adobe.com/pdf/1.3/" xmlns:dc="http://purl.org/dc/elements/1.1/" rdf:about="">
13719
13972
  <!-- Dublin Core properties go here -->
13720
13973
  <dc:title>
@@ -13761,7 +14014,7 @@
13761
14014
  <xsl:variable name="dc_description">
13762
14015
  <xsl:variable name="abstract">
13763
14016
 
13764
- <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()[not(ancestor::*[local-name() = 'title'])]"/>
14017
+ <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'])]"/>
13765
14018
 
13766
14019
  </xsl:variable>
13767
14020
  <rdf:Alt>
@@ -14304,31 +14557,123 @@
14304
14557
 
14305
14558
  <!-- END: insert cover page image -->
14306
14559
 
14307
- <xsl:variable name="regex_ja_spec">[\uFF08\uFF09]</xsl:variable>
14560
+ <!-- https://github.com/metanorma/docs/blob/main/109.adoc -->
14561
+ <xsl:variable name="regex_ja_spec_">[
14562
+ <!-- Rotate 90° clockwise -->
14563
+ \u0028 <!-- U+0028 LEFT PARENTHESIS (() -->
14564
+ \uFF08 <!-- U+FF08 FULLWIDTH LEFT PARENTHESIS (() -->
14565
+ \u0029 <!-- U+0029 RIGHT PARENTHESIS ()) -->
14566
+ \uFF09 <!-- U+FF09 FULLWIDTH RIGHT PARENTHESIS ()) -->
14567
+ \u007B <!-- U+007B LEFT CURLY BRACKET ({) -->
14568
+ \uFF5B <!-- U+FF5B FULLWIDTH LEFT CURLY BRACKET ({) -->
14569
+ \u007D <!-- U+007D RIGHT CURLY BRACKET (}) -->
14570
+ \uFF5D <!-- U+FF5D FULLWIDTH RIGHT CURLY BRACKET (}) -->
14571
+ \u3014 <!-- U+3014 LEFT TORTOISE SHELL BRACKET (〔) -->
14572
+ \u3015 <!-- U+3015 RIGHT TORTOISE SHELL BRACKET (〕) -->
14573
+ \u3010 <!-- U+3010 LEFT BLACK LENTICULAR BRACKET (【) -->
14574
+ \u3011 <!-- U+3011 RIGHT BLACK LENTICULAR BRACKET (】) -->
14575
+ \u300A <!-- U+300A LEFT DOUBLE ANGLE BRACKET (《) -->
14576
+ \u300B <!-- U+300B RIGHT DOUBLE ANGLE BRACKET (》) -->
14577
+ \uFF62 <!-- U+FF62 HALFWIDTH LEFT CORNER BRACKET (「) -->
14578
+ \u300C <!-- U+300C LEFT CORNER BRACKET (「) -->
14579
+ \uFF63 <!-- U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」) -->
14580
+ \u300D <!-- U+300D RIGHT CORNER BRACKET (」) -->
14581
+ \u300E <!-- U+300E LEFT WHITE CORNER BRACKET (『) -->
14582
+ \u300F <!-- U+300F RIGHT WHITE CORNER BRACKET (』) -->
14583
+ \u005B <!-- U+005B LEFT SQUARE BRACKET ([) -->
14584
+ \uFF3B <!-- U+FF3B FULLWIDTH LEFT SQUARE BRACKET ([) -->
14585
+ \u005D <!-- U+005D RIGHT SQUARE BRACKET (]) -->
14586
+ \uFF3D <!-- U+FF3D FULLWIDTH RIGHT SQUARE BRACKET (]) -->
14587
+ \u3008 <!-- U+3008 LEFT ANGLE BRACKET (〈) -->
14588
+ \u3009 <!-- U+3009 RIGHT ANGLE BRACKET (〉) -->
14589
+ \u3016 <!-- U+3016 LEFT WHITE LENTICULAR BRACKET (〖) -->
14590
+ \u3017 <!-- U+3017 RIGHT WHITE LENTICULAR BRACKET (〗) -->
14591
+
14592
+ \u301A <!-- U+301A LEFT WHITE SQUARE BRACKET (〚) -->
14593
+ \u301B <!-- U+301B RIGHT WHITE SQUARE BRACKET (〛) -->
14594
+ \u301C <!-- U+301C WAVE DASH (〜) -->
14595
+ \u3030 <!-- U+3030 WAVY DASH (〰 )-->
14596
+ \u30FC <!-- U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK (ー) -->
14597
+ \u2329 <!-- U+2329 LEFT-POINTING ANGLE BRACKET (〈) -->
14598
+ \u232A <!-- U+232A RIGHT-POINTING ANGLE BRACKET (〉) -->
14599
+ \u3018 <!-- U+3018 LEFT WHITE TORTOISE SHELL BRACKET (〘) -->
14600
+ \u3019 <!-- U+3019 RIGHT WHITE TORTOISE SHELL BRACKET (〙) -->
14601
+ \u30A0 <!-- U+30A0 KATAKANA-HIRAGANA DOUBLE HYPHEN (゠) -->
14602
+ \uFE59 <!-- U+FE59 SMALL LEFT PARENTHESIS (﹙) -->
14603
+ \uFE5A <!-- U+FE5A SMALL RIGHT PARENTHESIS (﹚) -->
14604
+ \uFE5B <!-- U+FE5B SMALL LEFT CURLY BRACKET (﹛) -->
14605
+ \uFE5C <!-- U+FE5C SMALL RIGHT CURLY BRACKET (﹜) -->
14606
+ \uFE5D <!-- U+FE5D SMALL LEFT TORTOISE SHELL BRACKET (﹝) -->
14607
+ \uFE5E <!-- U+FE5E SMALL RIGHT TORTOISE SHELL BRACKET (﹞) -->
14608
+ \uFF5C <!-- U+FF5C FULLWIDTH VERTICAL LINE (|) -->
14609
+ \uFF5F <!-- U+FF5F FULLWIDTH LEFT WHITE PARENTHESIS (⦅) -->
14610
+ \uFF60 <!-- U+FF60 FULLWIDTH RIGHT WHITE PARENTHESIS (⦆) -->
14611
+ \uFFE3 <!-- U+FFE3 FULLWIDTH MACRON ( ̄) -->
14612
+ \uFF3F <!-- U+FF3F FULLWIDTH LOW LINE (_) -->
14613
+ \uFF5E <!-- U+FF5E FULLWIDTH TILDE (~) -->
14614
+ <!-- Rotate 180° -->
14615
+ \u309C <!-- U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜) -->
14616
+ \u3002 <!-- U+3002 IDEOGRAPHIC FULL STOP (。) -->
14617
+ \uFE52 <!-- U+FE52 SMALL FULL STOP (﹒) -->
14618
+ \uFF0E <!-- U+FF0E FULLWIDTH FULL STOP (.) -->
14619
+ ]</xsl:variable>
14620
+ <xsl:variable name="regex_ja_spec"><xsl:value-of select="translate(normalize-space($regex_ja_spec_), ' ', '')"/></xsl:variable>
14308
14621
  <xsl:template name="insertVerticalChar">
14309
14622
  <xsl:param name="str"/>
14310
14623
  <xsl:param name="writing-mode">lr-tb</xsl:param>
14311
14624
  <xsl:param name="reference-orientation">90</xsl:param>
14312
- <xsl:if test="string-length($str) &gt; 0">
14313
- <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">
14314
- <xsl:if test="normalize-space($writing-mode) != ''">
14315
- <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
14316
- <xsl:attribute name="reference-orientation">90</xsl:attribute>
14317
- </xsl:if>
14318
- <xsl:variable name="char" select="substring($str,1,1)"/>
14319
- <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
14320
- <xsl:attribute name="reference-orientation">0</xsl:attribute>
14625
+ <xsl:param name="add_zero_width_space">false</xsl:param>
14626
+ <xsl:choose>
14627
+ <xsl:when test="ancestor::*[local-name() = 'span'][@class = 'norotate']">
14628
+ <xsl:value-of select="$str"/>
14629
+ </xsl:when>
14630
+ <xsl:otherwise>
14631
+ <xsl:if test="string-length($str) &gt; 0">
14632
+ <xsl:variable name="horizontal_mode" select="normalize-space(ancestor::*[local-name() = 'span'][@class = 'horizontal'] and 1 = 1)"/>
14633
+ <xsl:variable name="char" select="substring($str,1,1)"/>
14634
+ <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">
14635
+ <xsl:if test="normalize-space($writing-mode) != ''">
14636
+ <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
14637
+ <xsl:attribute name="reference-orientation">90</xsl:attribute>
14638
+ </xsl:if>
14639
+ <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
14640
+ <xsl:attribute name="reference-orientation">0</xsl:attribute>
14641
+ </xsl:if>
14642
+ <xsl:if test="$char = '゜' or $char = '。' or $char = '﹒' or $char = '.'">
14643
+ <!-- Rotate 180°:
14644
+ U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜)
14645
+ U+3002 IDEOGRAPHIC FULL STOP (。)
14646
+ U+FE52 SMALL FULL STOP (﹒)
14647
+ U+FF0E FULLWIDTH FULL STOP (.)
14648
+ -->
14649
+ <xsl:attribute name="reference-orientation">-90</xsl:attribute>
14650
+ </xsl:if>
14651
+ <fo:block-container width="1em">
14652
+ <fo:block line-height="1em">
14653
+ <xsl:choose>
14654
+ <xsl:when test="$horizontal_mode = 'true'">
14655
+ <xsl:value-of select="$str"/>
14656
+ </xsl:when>
14657
+ <xsl:otherwise>
14658
+ <xsl:value-of select="$char"/>
14659
+ </xsl:otherwise>
14660
+ </xsl:choose>
14661
+ </fo:block>
14662
+ </fo:block-container>
14663
+ </fo:inline-container>
14664
+ <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>
14665
+
14666
+ <xsl:if test="$horizontal_mode = 'false'">
14667
+ <xsl:call-template name="insertVerticalChar">
14668
+ <xsl:with-param name="str" select="substring($str, 2)"/>
14669
+ <xsl:with-param name="writing-mode" select="$writing-mode"/>
14670
+ <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
14671
+ <xsl:with-param name="add_zero_width_space" select="$add_zero_width_space"/>
14672
+ </xsl:call-template>
14673
+ </xsl:if>
14321
14674
  </xsl:if>
14322
- <fo:block-container width="1em">
14323
- <fo:block line-height="1em"><xsl:value-of select="$char"/></fo:block>
14324
- </fo:block-container>
14325
- </fo:inline-container>
14326
- <xsl:call-template name="insertVerticalChar">
14327
- <xsl:with-param name="str" select="substring($str, 2)"/>
14328
- <xsl:with-param name="writing-mode" select="$writing-mode"/>
14329
- <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
14330
- </xsl:call-template>
14331
- </xsl:if>
14675
+ </xsl:otherwise>
14676
+ </xsl:choose>
14332
14677
  </xsl:template>
14333
14678
 
14334
14679
  <xsl:template name="number-to-words">
@@ -44,18 +44,20 @@ module IsoDoc
44
44
  end
45
45
  end
46
46
 
47
- def hierarchical_figure_names(clause, num)
47
+ def hierarchical_figure_names(clauses, num)
48
48
  c = IsoDoc::XrefGen::Counter.new
49
49
  j = 0
50
+ nodeSet(clauses).each do |clause|
50
51
  clause.xpath(ns(FIGURE_NO_CLASS)).noblank.each do |t|
51
52
  labelled_ancestor(t, %w(figure)) and next # do not label nested figure
52
53
  j = subfigure_increment(j, c, t)
53
- label = "#{num}#{hiersep}#{c.print}"
54
+ #label = "#{num}#{hier_separator}#{c.print}"
54
55
  sublabel = subfigure_label(j)
55
- figure_anchor(t, sublabel, label, "figure")
56
+ figure_anchor(t, sublabel, hiersemx(clause, num, c, t), "figure")
56
57
  end
57
58
  hierarchical_figure_class_names(clause, num)
58
59
  end
60
+ end
59
61
 
60
62
  def hierarchical_figure_class_names(clause, num)
61
63
  c = {}
@@ -65,9 +67,9 @@ module IsoDoc
65
67
  c[t["class"]] ||= IsoDoc::XrefGen::Counter.new
66
68
  labelled_ancestor(t, %w(figure)) and next
67
69
  j = subfigure_increment(j, c[t["class"]], t)
68
- label = "#{num}#{hiersep}#{c.print}"
70
+ #label = "#{num}#{hier_separator}#{c.print}"
69
71
  sublabel = j.zero? ? nil : "#{(j + 96).chr})"
70
- figure_anchor(t, sublabel, label, t["class"])
72
+ figure_anchor(t, sublabel, hiersemx(clause, num, c[t["class"]], t), t["class"])
71
73
  end
72
74
  end
73
75
 
@@ -17,7 +17,7 @@
17
17
  these elements; we just want one namespace for any child grammars
18
18
  of this.
19
19
  -->
20
- <!-- VERSION v1.4.0 -->
20
+ <!-- VERSION v1.4.1 -->
21
21
  <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
22
22
  <include href="reqt.rng"/>
23
23
  <include href="basicdoc.rng">
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Plateau
3
- VERSION = "0.1.10".freeze
3
+ VERSION = "0.1.12".freeze
4
4
  end
5
5
  end
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.test_files = `git ls-files -- {spec}/*`.split("\n")
30
30
  spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
31
31
 
32
- spec.add_dependency "metanorma-jis", "~> 0.4.0"
32
+ spec.add_dependency "metanorma-jis", "~> 0.4.2"
33
33
  spec.add_dependency "pubid"
34
34
 
35
35
  spec.add_development_dependency "debug"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-plateau
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-11 00:00:00.000000000 Z
11
+ date: 2024-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-jis
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.4.0
19
+ version: 0.4.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.4.0
26
+ version: 0.4.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pubid
29
29
  requirement: !ruby/object:Gem::Requirement