metanorma-bipm 2.2.14 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -244,7 +244,7 @@ ul li {
244
244
  list-style: none;
245
245
  }
246
246
 
247
- ul li:before {
247
+ ul li::before {
248
248
  content: "—";
249
249
  display: inline-block; width: 1em;
250
250
  margin-left: -1.2em;
@@ -273,7 +273,7 @@ ol ul > li:first-child {
273
273
  list-style-type: none;
274
274
  }
275
275
 
276
- #toc li:before {
276
+ #toc li::before {
277
277
  content: " ";
278
278
  display: none;
279
279
  }
@@ -296,13 +296,13 @@ ol[class="alphabet"] > li {
296
296
  ol[class="alphabet"] ol[class="alphabet"] > li {
297
297
  list-style: inherit;
298
298
  }
299
- ol[class="alphabet"] > li:before {
299
+ ol[class="alphabet"] > li::before {
300
300
  counter-increment: alphabet;
301
301
  content: counter(alphabet, lower-alpha)") ";
302
302
  position: absolute;
303
303
  left: -1.4em;
304
304
  }
305
- ol[class="alphabet"] ol[class="alphabet"] > li:before {
305
+ ol[class="alphabet"] ol[class="alphabet"] > li::before {
306
306
  counter-increment: none;
307
307
  content: initial;
308
308
  }
@@ -316,13 +316,13 @@ ol[class="roman"] > li {
316
316
  ol[class="roman"] ol[class="roman"] > li {
317
317
  list-style: inherit;
318
318
  }
319
- ol[class="roman"] > li:before {
319
+ ol[class="roman"] > li::before {
320
320
  counter-increment: roman;
321
321
  content: "("counter(roman, lower-roman)") ";
322
322
  position: absolute;
323
323
  left: -2.0em;
324
324
  }
325
- ol[class="roman"] ol[class="roman"] > li:before {
325
+ ol[class="roman"] ol[class="roman"] > li::before {
326
326
  counter-increment: none;
327
327
  content: initial;
328
328
  }
@@ -6,16 +6,10 @@ require_relative "base_convert"
6
6
  module IsoDoc
7
7
  module BIPM
8
8
  class HtmlConvert < IsoDoc::Generic::HtmlConvert
9
- def middle(isoxml, out)
10
- super
11
- doccontrol isoxml, out
12
- end
13
-
14
- def doccontrol(isoxml, out)
15
- c = isoxml.at(ns("//doccontrol")) or return
9
+ def doccontrol(elem, out)
16
10
  out.div **attr_code(class: "doccontrol") do |div|
17
- clause_parse_title(c, div, c.at(ns("./title")), out)
18
- c.children.reject { |c1| c1.name == "title" }.each do |c1|
11
+ clause_parse_title(elem, div, elem.at(ns("./title")), out)
12
+ elem.children.reject { |c1| c1.name == "title" }.each do |c1|
19
13
  parse(c1, div)
20
14
  end
21
15
  end
@@ -243,13 +243,13 @@
243
243
  <xsl:value-of select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:copyright/jcgm:from"/>
244
244
  </fo:block>
245
245
  <fo:block font-size="13pt" font-weight="normal" space-after="19.5mm">
246
- <xsl:value-of select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@type = 'provenance']"/>
246
+ <xsl:value-of select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@type = 'title-provenance']"/>
247
247
  </fo:block>
248
248
  <fo:block border-bottom="1pt solid black"> </fo:block>
249
249
  <fo:block font-size="16.5pt" margin-left="-0.5mm" padding-top="3.5mm" space-after="7mm" margin-right="7mm" line-height="105%" role="H1">
250
- <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $lang and @type = 'main']" mode="title"/>
250
+ <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $lang and @type = 'title-main']" mode="title"/>
251
251
  <xsl:variable name="title_part">
252
- <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $lang and @type = 'part']" mode="title"/>
252
+ <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $lang and @type = 'title-part']" mode="title"/>
253
253
  </xsl:variable>
254
254
  <xsl:if test="normalize-space($title_part) != ''">
255
255
  <xsl:text> — </xsl:text>
@@ -258,9 +258,9 @@
258
258
  </fo:block>
259
259
  <fo:block font-size="12pt" font-style="italic" line-height="140%" role="H1">
260
260
  <xsl:variable name="secondLang" select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title/@language[. != $lang]"/>
261
- <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $secondLang and @type = 'main']" mode="title"/>
261
+ <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $secondLang and @type = 'title-main']" mode="title"/>
262
262
  <xsl:variable name="title_part">
263
- <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $secondLang and @type = 'part']" mode="title"/>
263
+ <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $secondLang and @type = 'title-part']" mode="title"/>
264
264
  </xsl:variable>
265
265
  <xsl:if test="normalize-space($title_part) != ''">
266
266
  <xsl:text> — </xsl:text>
@@ -297,9 +297,9 @@
297
297
  </fo:table-body>
298
298
  </fo:table>
299
299
  <fo:block font-size="18pt" space-before="70mm" role="H1">
300
- <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $lang and @type = 'main']" mode="title"/>
300
+ <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $lang and @type = 'title-main']" mode="title"/>
301
301
  <xsl:variable name="title_part">
302
- <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $lang and @type = 'part']" mode="title"/>
302
+ <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $lang and @type = 'title-part']" mode="title"/>
303
303
  </xsl:variable>
304
304
  <xsl:if test="normalize-space($title_part) != ''">
305
305
  <xsl:text> — </xsl:text>
@@ -308,9 +308,9 @@
308
308
  </fo:block>
309
309
  <fo:block font-size="13pt" space-before="35mm" role="H1">
310
310
  <xsl:variable name="secondLang" select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title/@language[. != $lang]"/>
311
- <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $secondLang and @type = 'main']" mode="title"/>
311
+ <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $secondLang and @type = 'title-main']" mode="title"/>
312
312
  <xsl:variable name="title_part">
313
- <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $secondLang and @type = 'part']" mode="title"/>
313
+ <xsl:apply-templates select="(//jcgm:bipm-standard)[1]/jcgm:bibdata/jcgm:title[@language = $secondLang and @type = 'title-part']" mode="title"/>
314
314
  </xsl:variable>
315
315
  <xsl:if test="normalize-space($title_part) != ''">
316
316
  <xsl:text> — </xsl:text>
@@ -397,14 +397,16 @@
397
397
 
398
398
  <fo:flow flow-name="xsl-region-body" line-height="115%">
399
399
 
400
- <fo:block-container>
400
+ <xsl:if test="count(//*[local-name() = 'bipm-standard']) != 1 ">
401
+ <!-- <fo:block-container> -->
401
402
  <!-- Show title -->
402
403
  <!-- Example: Evaluation of measurement data — An introduction to the `Guide to the expression of uncertainty in measurement' and related documents -->
403
404
 
404
405
  <xsl:for-each select="//*[local-name() = 'bipm-standard']">
405
- <fo:block font-size="20pt" font-weight="bold" margin-bottom="20pt" space-before="36pt" line-height="1.1">
406
- <xsl:variable name="curr_lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
407
406
 
407
+ <!-- <fo:block font-size="20pt" font-weight="bold" margin-bottom="20pt" space-before="36pt" line-height="1.1">
408
+ <xsl:variable name="curr_lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
409
+
408
410
  <xsl:variable name="title-main">
409
411
  <xsl:apply-templates select="./*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = $curr_lang and @type = 'main']" mode="title"/>
410
412
  </xsl:variable>
@@ -412,7 +414,7 @@
412
414
  <xsl:variable name="title-part">
413
415
  <xsl:apply-templates select="./*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = $curr_lang and @type = 'part']" mode="title"/>
414
416
  </xsl:variable>
415
-
417
+
416
418
  <fo:block role="H1">
417
419
  <xsl:copy-of select="$title-main"/>
418
420
  <xsl:if test="normalize-space($title-main) != '' and normalize-space($title-part) != ''">
@@ -420,7 +422,7 @@
420
422
  </xsl:if>
421
423
  <xsl:copy-of select="$title-part"/>
422
424
  </fo:block>
423
-
425
+
424
426
  <xsl:variable name="edition">
425
427
  <xsl:apply-templates select="./*[local-name() = 'bibdata']/*[local-name() = 'edition'][normalize-space(@language) = '']">
426
428
  <xsl:with-param name="curr_lang" select="$curr_lang"/>
@@ -429,11 +431,14 @@
429
431
  <xsl:if test="normalize-space($edition) != ''">
430
432
  <fo:block margin-top="12pt"><xsl:copy-of select="$edition"/></fo:block>
431
433
  </xsl:if>
434
+
435
+ </fo:block> -->
432
436
 
433
- </fo:block>
434
- </xsl:for-each>
437
+ <xsl:apply-templates select="jcgmsections/jcgm:p[starts-with(@class, 'zzSTDTitle')]"/>
435
438
 
436
- </fo:block-container>
439
+ </xsl:for-each>
440
+ <!-- </fo:block-container> -->
441
+ </xsl:if>
437
442
  <!-- Clause(s) -->
438
443
  <fo:block>
439
444
  <xsl:choose>
@@ -581,6 +586,32 @@
581
586
  </fo:block>
582
587
  </xsl:template>
583
588
 
589
+ <xsl:template match="jcgm:sections/jcgm:p[@class = 'zzSTDTitle1']" priority="4">
590
+ <fo:block font-size="20pt" font-weight="bold" margin-bottom="20pt" space-before="36pt" line-height="1.1" role="H1">
591
+ <xsl:if test="following-sibling::*[1][self::jcgm:p][starts-with(@class, 'zzSTDTitle')]">
592
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
593
+ </xsl:if>
594
+ <xsl:apply-templates/>
595
+ </fo:block>
596
+ <xsl:variable name="curr_lang" select="ancestor::jcgm:bipm-standard/*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
597
+ <xsl:variable name="edition">
598
+ <xsl:apply-templates select="ancestor::jcgm:bipm-standard/*[local-name() = 'bibdata']/*[local-name() = 'edition'][normalize-space(@language) = '']">
599
+ <xsl:with-param name="curr_lang" select="$curr_lang"/>
600
+ </xsl:apply-templates>
601
+ </xsl:variable>
602
+ <xsl:if test="normalize-space($edition) != ''">
603
+ <fo:block font-size="20pt" font-weight="bold" margin-top="12pt" margin-bottom="20pt" line-height="1.1">
604
+ <xsl:copy-of select="$edition"/>
605
+ </fo:block>
606
+ </xsl:if>
607
+ </xsl:template>
608
+
609
+ <xsl:template match="jcgm:sections/jcgm:p[@class = 'zzSTDTitle2']" priority="4">
610
+ <fo:block font-size="20pt" font-weight="bold" margin-top="12pt" margin-bottom="20pt" line-height="1.1">
611
+ <xsl:apply-templates/>
612
+ </fo:block>
613
+ </xsl:template>
614
+
584
615
  <xsl:template match="node()">
585
616
  <xsl:apply-templates/>
586
617
  </xsl:template>
@@ -5708,6 +5739,9 @@
5708
5739
  <!-- END Definition List -->
5709
5740
  <!-- ===================== -->
5710
5741
 
5742
+ <!-- default: ignore title in sections/p -->
5743
+ <xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]" priority="3"/>
5744
+
5711
5745
  <!-- ========================= -->
5712
5746
  <!-- Rich text formatting -->
5713
5747
  <!-- ========================= -->
@@ -7798,25 +7832,45 @@
7798
7832
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
7799
7833
  <xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
7800
7834
 
7801
- <xsl:variable name="img_src">
7802
- <xsl:choose>
7803
- <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7804
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7805
- </xsl:choose>
7806
- </xsl:variable>
7835
+ <xsl:if test="@width != '' and @width != 'auto'">
7836
+ <xsl:attribute name="width">
7837
+ <xsl:value-of select="@width"/>
7838
+ </xsl:attribute>
7839
+ </xsl:if>
7840
+
7841
+ <xsl:if test="@height != '' and @height != 'auto'">
7842
+ <xsl:attribute name="height">
7843
+ <xsl:value-of select="@height"/>
7844
+ </xsl:attribute>
7845
+ </xsl:if>
7846
+
7847
+ <xsl:choose>
7848
+ <xsl:when test="@width != '' and @width != 'auto' and @height != '' and @height != 'auto'">
7849
+ <xsl:attribute name="scaling">non-uniform</xsl:attribute>
7850
+ </xsl:when>
7851
+ <xsl:otherwise>
7807
7852
 
7808
- <xsl:variable name="image_width_effective">
7853
+ <xsl:variable name="img_src">
7854
+ <xsl:choose>
7855
+ <xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
7856
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7857
+ </xsl:choose>
7858
+ </xsl:variable>
7809
7859
 
7810
- <xsl:value-of select="$width_effective"/>
7860
+ <xsl:variable name="image_width_effective">
7811
7861
 
7812
- </xsl:variable>
7862
+ <xsl:value-of select="$width_effective"/>
7863
+
7864
+ </xsl:variable>
7813
7865
 
7814
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7815
- <xsl:if test="number($scale) &lt; 100">
7866
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7867
+ <xsl:if test="number($scale) &lt; 100">
7816
7868
 
7817
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7869
+ <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
7818
7870
 
7819
- </xsl:if>
7871
+ </xsl:if>
7872
+ </xsl:otherwise>
7873
+ </xsl:choose>
7820
7874
 
7821
7875
  </xsl:if>
7822
7876
 
@@ -11488,7 +11542,7 @@
11488
11542
  <xsl:template match="*[local-name() = 'span']" mode="update_xml_step1">
11489
11543
  <xsl:apply-templates mode="update_xml_step1"/>
11490
11544
  </xsl:template>
11491
- <xsl:template match="*[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
11545
+ <xsl:template match="*[local-name() = 'sections']/*[local-name() = 'p'][starts-with(@class, 'zzSTDTitle')]/*[local-name() = 'span'][@class] | *[local-name() = 'sourcecode']//*[local-name() = 'span'][@class]" mode="update_xml_step1" priority="2">
11492
11546
  <xsl:copy>
11493
11547
  <xsl:copy-of select="@*"/>
11494
11548
  <xsl:apply-templates mode="update_xml_step1"/>
@@ -12054,7 +12108,7 @@
12054
12108
  <xsl:variable name="title">
12055
12109
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
12056
12110
 
12057
- <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'part']"/>
12111
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'title-part']"/>
12058
12112
 
12059
12113
  </xsl:for-each>
12060
12114
  </xsl:variable>
@@ -12077,7 +12131,7 @@
12077
12131
  <dc:description>
12078
12132
  <xsl:variable name="abstract">
12079
12133
 
12080
- <xsl:value-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
12134
+ <xsl:value-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = $lang and @type = 'title-main']"/>
12081
12135
 
12082
12136
  </xsl:variable>
12083
12137
  <xsl:value-of select="normalize-space($abstract)"/>
@@ -27,14 +27,14 @@ module IsoDoc
27
27
  def title(isoxml, _out)
28
28
  lang1, lang2 = @lang == "fr" ? %w(fr en) : %w(en fr)
29
29
  set(:doctitle, @c.encode(isoxml.at(
30
- ns("#{TITLE}[@type='main'][@language='#{lang1}']"))&.text || ""))
30
+ ns("#{TITLE}[@type='title-main'][@language='#{lang1}']"))&.text || ""))
31
31
  set(:docsubtitle, @c.encode(isoxml.at(
32
- ns("#{TITLE}[@type='main'][@language='#{lang2}']"))&.text || ""))
32
+ ns("#{TITLE}[@type='title-main'][@language='#{lang2}']"))&.text || ""))
33
33
  %w(appendix annex part subtitle provenance).each do |e|
34
34
  set("#{e}title".to_sym, @c.encode(isoxml.at(
35
- ns("#{TITLE}[@type='#{e}'][@language='#{lang1}']"))&.text || ""))
35
+ ns("#{TITLE}[@type='title-#{e}'][@language='#{lang1}']"))&.text || ""))
36
36
  set("#{e}subtitle".to_sym, @c.encode(isoxml.at(
37
- ns("#{TITLE}[@type='#{e}'][@language='#{lang2}']"))&.text || ""))
37
+ ns("#{TITLE}[@type='title-#{e}'][@language='#{lang2}']"))&.text || ""))
38
38
  end
39
39
  end
40
40
 
@@ -0,0 +1,41 @@
1
+ module IsoDoc
2
+ module BIPM
3
+ class PresentationXMLConvert < IsoDoc::Generic::PresentationXMLConvert
4
+ def middle_title(docxml)
5
+ @jcgm or return nil
6
+ @iso.middle_title(docxml)
7
+ end
8
+
9
+ def table1(elem)
10
+ labelled_ancestor(elem) || elem["unnumbered"] and return
11
+ n = @xrefs.anchor(elem["id"], :label, false)
12
+ prefix_name(elem, ".<tab/>",
13
+ l10n("#{@i18n.table.capitalize} #{n}"), "name")
14
+ end
15
+
16
+ def figure1(elem)
17
+ if @jcgm
18
+ @iso.xrefs = @xrefs
19
+ @iso.figure1(elem)
20
+ else super
21
+ end
22
+ end
23
+
24
+ # notes and remarques (list notes) are not numbered
25
+ def note1(elem)
26
+ elem.parent.name == "bibitem" || elem["notag"] == "true" and return
27
+ lbl = l10n(note_label(elem))
28
+ prefix_name(elem, "", lbl, "name")
29
+ end
30
+
31
+ def note_label(elem)
32
+ if elem.ancestors("preface").empty?
33
+ if elem.ancestors("ul, ol, dl").empty?
34
+ @i18n.note
35
+ else @i18n.listnote end
36
+ else @i18n.prefacenote
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -5,6 +5,7 @@ require_relative "init"
5
5
  require_relative "index"
6
6
  require_relative "doccontrol"
7
7
  require_relative "../../relaton/render/general"
8
+ require_relative "presentation_blocks"
8
9
 
9
10
  module IsoDoc
10
11
  module BIPM
@@ -12,33 +13,25 @@ module IsoDoc
12
13
  def convert1(docxml, filename, dir)
13
14
  @jcgm = docxml&.at(ns("//bibdata/ext/editorialgroup/committee/" \
14
15
  "@acronym"))&.value == "JCGM"
15
- @iso = IsoDoc::Iso::PresentationXMLConvert
16
- .new({ language: @lang, script: @script })
17
- i18n = @iso.i18n_init(@lang, @script, @locale, nil)
18
- @iso.metadata_init(@lang, @script, @locale, i18n)
16
+ @xrefs.klass.jcgm = @jcgm
17
+ @jcgm and @iso = iso_processor(docxml)
19
18
  super
20
19
  end
21
20
 
21
+ def iso_processor(docxml)
22
+ iso = IsoDoc::Iso::PresentationXMLConvert
23
+ .new({ language: @lang, script: @script })
24
+ i18n = iso.i18n_init(@lang, @script, @locale, nil)
25
+ iso.metadata_init(@lang, @script, @locale, i18n)
26
+ iso.info(docxml, nil)
27
+ iso
28
+ end
29
+
22
30
  def eref_localities1(opt)
23
31
  @jcgm and return @iso.eref_localities1(opt)
24
32
  super
25
33
  end
26
34
 
27
- def table1(elem)
28
- labelled_ancestor(elem) || elem["unnumbered"] and return
29
- n = @xrefs.anchor(elem["id"], :label, false)
30
- prefix_name(elem, ".<tab/>",
31
- l10n("#{@i18n.table.capitalize} #{n}"), "name")
32
- end
33
-
34
- def figure1(elem)
35
- if @jcgm
36
- @iso.xrefs = @xrefs
37
- @iso.figure1(elem)
38
- else super
39
- end
40
- end
41
-
42
35
  def annex1(elem)
43
36
  @jcgm and return super
44
37
  elem["unnumbered"] == "true" and return
@@ -77,8 +70,8 @@ module IsoDoc
77
70
  end
78
71
 
79
72
  def conversions(docxml)
80
- super
81
73
  doccontrol docxml
74
+ super
82
75
  end
83
76
 
84
77
  def twitter_cldr_localiser_symbols
@@ -115,9 +108,9 @@ module IsoDoc
115
108
  def bibdata_titles(bibdata)
116
109
  app = bibdata.at(ns("//bibdata/ext/" \
117
110
  "structuredidentifier/part")) or return
118
- bibdata.xpath(ns("//bibdata/title[@type = 'part']")).each do |t|
111
+ bibdata.xpath(ns("//bibdata/title[@type = 'title-part']")).each do |t|
119
112
  t.previous = t.dup
120
- t["type"] = "part-with-numbering"
113
+ t["type"] = "title-part-with-numbering"
121
114
  part = t["language"] == "en" ? "Part" : "Partie" # not looking up in YAML
122
115
  t.children = l10n("#{part} #{app.text}: #{to_xml(t.children)}",
123
116
  t["language"])
@@ -170,22 +163,6 @@ module IsoDoc
170
163
  end
171
164
  end
172
165
 
173
- # notes and remarques (list notes) are not numbered
174
- def note1(elem)
175
- elem.parent.name == "bibitem" || elem["notag"] == "true" and return
176
- lbl = l10n(note_label(elem))
177
- prefix_name(elem, "", lbl, "name")
178
- end
179
-
180
- def note_label(elem)
181
- if elem.ancestors("preface").empty?
182
- if elem.ancestors("ul, ol, dl").empty?
183
- @i18n.note
184
- else @i18n.listnote end
185
- else @i18n.prefacenote
186
- end
187
- end
188
-
189
166
  def termsource1(elem)
190
167
  # elem["status"] == "modified" and return super
191
168
  while elem&.next_element&.name == "termsource"
@@ -4,13 +4,15 @@ module IsoDoc
4
4
  end
5
5
 
6
6
  class Xref < IsoDoc::Xref
7
+ attr_accessor :jcgm
8
+
7
9
  def initialize(lang, script, klass, i18n, options = {})
8
10
  @iso = IsoDoc::Iso::Xref.new(lang, script, klass, i18n, options)
9
11
  super
10
12
  end
11
13
 
12
14
  def parse(docxml)
13
- @jcgm = docxml&.at(ns("//bibdata/ext/editorialgroup/committee/"\
15
+ @jcgm = docxml&.at(ns("//bibdata/ext/editorialgroup/committee/" \
14
16
  "@acronym"))&.value == "JCGM"
15
17
  @annexlbl =
16
18
  if @jcgm then @labels["iso_annex"]
@@ -38,8 +40,9 @@ module IsoDoc
38
40
  end
39
41
 
40
42
  def clause_names_jcgm(docxml, sect_num)
41
- docxml.xpath(ns("//clause[parent::sections][not(@type = 'scope')]"\
42
- "[not(descendant::terms)]")).each do |c|
43
+ docxml.xpath(ns("//clause[parent::sections][not(@type = 'scope')]" \
44
+ "[not(descendant::terms)][not(descendant::references)]"))
45
+ .each do |c|
43
46
  section_names(c, sect_num, 1)
44
47
  end
45
48
  end
@@ -48,24 +51,24 @@ module IsoDoc
48
51
 
49
52
  def clause_names_bipm(docxml, _sect_num)
50
53
  n = Counter.new
51
- docxml.xpath(ns("//sections/clause[not(#{UNNUM})] | "\
52
- "//sections/terms[not(#{UNNUM})] | "\
54
+ docxml.xpath(ns("//sections/clause[not(#{UNNUM})] | " \
55
+ "//sections/terms[not(#{UNNUM})] | " \
53
56
  "//sections/definitions[not(#{UNNUM})]"))
54
57
  .each { |c| section_names(c, n, 1) }
55
- docxml.xpath(ns("//sections/clause[#{UNNUM}] | "\
56
- "//sections/terms[#{UNNUM}] | "\
58
+ docxml.xpath(ns("//sections/clause[#{UNNUM}] | " \
59
+ "//sections/terms[#{UNNUM}] | " \
57
60
  "//sections/definitions[#{UNNUM}]"))
58
61
  .each { |c| unnumbered_section_names(c, 1) }
59
62
  end
60
63
 
61
64
  NUMBERED_SUBCLAUSES =
62
- "./clause[not(#{UNNUM})] | ./references[not(#{UNNUM})] | "\
63
- "./term[not(#{UNNUM})] | ./terms[not(#{UNNUM})] | "\
65
+ "./clause[not(#{UNNUM})] | ./references[not(#{UNNUM})] | " \
66
+ "./term[not(#{UNNUM})] | ./terms[not(#{UNNUM})] | " \
64
67
  "./definitions[not(#{UNNUM})]".freeze
65
68
 
66
69
  UNNUMBERED_SUBCLAUSES =
67
- "./clause[#{UNNUM}] | ./references[#{UNNUM}] | "\
68
- "./term[#{UNNUM}] | ./terms[#{UNNUM}] | "\
70
+ "./clause[#{UNNUM}] | ./references[#{UNNUM}] | " \
71
+ "./term[#{UNNUM}] | ./terms[#{UNNUM}] | " \
69
72
  "./definitions[#{UNNUM}]".freeze
70
73
 
71
74
  def section_name_anchors(clause, num, lvl)
@@ -91,7 +91,7 @@ module Metanorma
91
91
  def title(node, xml)
92
92
  ["en", "fr"].each do |lang|
93
93
  at = { language: lang, format: "text/plain" }
94
- xml.title **attr_code(at.merge(type: "main")) do |t1|
94
+ xml.title **attr_code(at.merge(type: "title-main")) do |t1|
95
95
  t1 << Metanorma::Utils::asciidoc_sub(node.attr("title-#{lang}"))
96
96
  end
97
97
  %w(cover appendix annex part subpart provenance).each do |w|
@@ -104,7 +104,7 @@ module Metanorma
104
104
  at = { language: lang, format: "text/plain" }
105
105
  return unless title = node.attr("title-#{type}-#{lang}")
106
106
 
107
- xml.title **attr_code(at.merge(type: type)) do |t1|
107
+ xml.title **attr_code(at.merge(type: "title-#{type}")) do |t1|
108
108
  t1 << Metanorma::Utils::asciidoc_sub(title)
109
109
  end
110
110
  end
@@ -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.2.2 -->
20
+ <!-- VERSION v1.2.3 -->
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">
@@ -192,9 +192,11 @@
192
192
  </attribute>
193
193
  </optional>
194
194
  <attribute name="citeas"/>
195
- <attribute name="type">
196
- <ref name="ReferenceFormat"/>
197
- </attribute>
195
+ <optional>
196
+ <attribute name="type">
197
+ <ref name="ReferenceFormat"/>
198
+ </attribute>
199
+ </optional>
198
200
  <optional>
199
201
  <attribute name="alt"/>
200
202
  </optional>
@@ -836,6 +838,26 @@
836
838
  <ref name="paragraph"/>
837
839
  </element>
838
840
  </define>
841
+ <define name="stem">
842
+ <element name="stem">
843
+ <attribute name="type">
844
+ <choice>
845
+ <value>MathML</value>
846
+ <value>AsciiMath</value>
847
+ <value>LatexMath</value>
848
+ </choice>
849
+ </attribute>
850
+ <attribute name="block">
851
+ <data type="boolean"/>
852
+ </attribute>
853
+ <oneOrMore>
854
+ <choice>
855
+ <text/>
856
+ <ref name="AnyElement"/>
857
+ </choice>
858
+ </oneOrMore>
859
+ </element>
860
+ </define>
839
861
  <define name="em">
840
862
  <element name="em">
841
863
  <zeroOrMore>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module BIPM
3
- VERSION = "2.2.14".freeze
3
+ VERSION = "2.3.0".freeze
4
4
  end
5
5
  end
@@ -27,8 +27,8 @@ Gem::Specification.new do |spec|
27
27
  spec.require_paths = ["lib"]
28
28
  spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
29
29
 
30
- spec.add_dependency "metanorma-generic", "~> 2.4.1"
31
- spec.add_dependency "metanorma-iso", "~> 2.4.2"
30
+ spec.add_dependency "metanorma-generic", "~> 2.5.0"
31
+ spec.add_dependency "metanorma-iso", "~> 2.5.0"
32
32
 
33
33
  spec.add_development_dependency "debug"
34
34
  spec.add_development_dependency "equivalent-xml", "~> 0.6"