metanorma-itu 1.2.9 → 1.2.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +11 -22
  3. data/.rubocop.yml +0 -4
  4. data/lib/asciidoctor/itu/basicdoc.rng +20 -3
  5. data/lib/asciidoctor/itu/boilerplate.xml +5 -2
  6. data/lib/asciidoctor/itu/cleanup.rb +9 -0
  7. data/lib/asciidoctor/itu/converter.rb +2 -1
  8. data/lib/asciidoctor/itu/front.rb +19 -20
  9. data/lib/asciidoctor/itu/isodoc.rng +118 -4
  10. data/lib/asciidoctor/itu/itu.rng +76 -0
  11. data/lib/asciidoctor/itu/validate.rb +13 -5
  12. data/lib/isodoc/itu/base_convert.rb +70 -52
  13. data/lib/isodoc/itu/cleanup.rb +55 -0
  14. data/lib/isodoc/itu/html/header.html +12 -8
  15. data/lib/isodoc/itu/html/html_itu_intro.html +1 -1
  16. data/lib/isodoc/itu/html/html_itu_titlepage.html +15 -3
  17. data/lib/isodoc/itu/html/htmlstyle.css +59 -12
  18. data/lib/isodoc/itu/html/htmlstyle.scss +26 -5
  19. data/lib/isodoc/itu/html/word_itu_intro.html +8 -2
  20. data/lib/isodoc/itu/html/word_itu_titlepage.html +29 -6
  21. data/lib/isodoc/itu/html/wordstyle.css +34 -0
  22. data/lib/isodoc/itu/html/wordstyle.scss +33 -0
  23. data/lib/isodoc/itu/html_convert.rb +2 -2
  24. data/lib/isodoc/itu/i18n-en.yaml +4 -0
  25. data/lib/isodoc/itu/itu.implementers-guide.xsl +5705 -0
  26. data/lib/isodoc/itu/itu.in-force.xsl +5705 -0
  27. data/lib/isodoc/itu/itu.recommendation-annex.xsl +897 -376
  28. data/lib/isodoc/itu/itu.recommendation-supplement.xsl +5705 -0
  29. data/lib/isodoc/itu/itu.recommendation.xsl +897 -376
  30. data/lib/isodoc/itu/itu.resolution.xsl +897 -376
  31. data/lib/isodoc/itu/itu.technical-paper.xsl +897 -376
  32. data/lib/isodoc/itu/itu.technical-report.xsl +897 -376
  33. data/lib/isodoc/itu/metadata.rb +41 -7
  34. data/lib/isodoc/itu/pdf_convert.rb +5 -8
  35. data/lib/isodoc/itu/presentation_xml_convert.rb +49 -3
  36. data/lib/isodoc/itu/word_convert.rb +2 -2
  37. data/lib/isodoc/itu/xref.rb +101 -43
  38. data/lib/metanorma/itu/processor.rb +11 -0
  39. data/lib/metanorma/itu/version.rb +1 -1
  40. data/metanorma-itu.gemspec +2 -2
  41. metadata +11 -8
  42. data/lib/metanorma/itu/fonts_manifest.yaml +0 -4
@@ -42,6 +42,8 @@
42
42
  <value>joint-itu-iso-iec</value>
43
43
  <value>resolution</value>
44
44
  <value>service-publication</value>
45
+ <value>handbook</value>
46
+ <value>question</value>
45
47
  </choice>
46
48
  </define>
47
49
  <define name="editorialgroup">
@@ -98,6 +100,9 @@
98
100
  <optional>
99
101
  <ref name="meeting"/>
100
102
  </optional>
103
+ <optional>
104
+ <ref name="meeting-place"/>
105
+ </optional>
101
106
  <optional>
102
107
  <ref name="meeting-date"/>
103
108
  </optional>
@@ -125,9 +130,74 @@
125
130
  </oneOrMore>
126
131
  </element>
127
132
  </define>
133
+ <define name="Clause-Section">
134
+ <optional>
135
+ <attribute name="id">
136
+ <data type="ID"/>
137
+ </attribute>
138
+ </optional>
139
+ <optional>
140
+ <attribute name="language"/>
141
+ </optional>
142
+ <optional>
143
+ <attribute name="script"/>
144
+ </optional>
145
+ <optional>
146
+ <attribute name="inline-header">
147
+ <data type="boolean"/>
148
+ </attribute>
149
+ </optional>
150
+ <optional>
151
+ <attribute name="obligation">
152
+ <choice>
153
+ <value>normative</value>
154
+ <value>informative</value>
155
+ </choice>
156
+ </attribute>
157
+ </optional>
158
+ <optional>
159
+ <attribute name="type"/>
160
+ </optional>
161
+ <optional>
162
+ <attribute name="unnumbered">
163
+ <data type="boolean"/>
164
+ </attribute>
165
+ </optional>
166
+ <optional>
167
+ <ref name="section-title"/>
168
+ </optional>
169
+ <group>
170
+ <choice>
171
+ <group>
172
+ <zeroOrMore>
173
+ <ref name="BasicBlock"/>
174
+ </zeroOrMore>
175
+ <zeroOrMore>
176
+ <ref name="note"/>
177
+ </zeroOrMore>
178
+ </group>
179
+ <ref name="amend"/>
180
+ </choice>
181
+ <zeroOrMore>
182
+ <choice>
183
+ <ref name="clause-subsection"/>
184
+ <ref name="terms"/>
185
+ <ref name="definitions"/>
186
+ </choice>
187
+ </zeroOrMore>
188
+ </group>
189
+ </define>
128
190
  </include>
129
191
  <define name="meeting">
130
192
  <element name="meeting">
193
+ <optional>
194
+ <attribute name="acronym"/>
195
+ </optional>
196
+ <text/>
197
+ </element>
198
+ </define>
199
+ <define name="meeting-place">
200
+ <element name="meeting-place">
131
201
  <text/>
132
202
  </element>
133
203
  </define>
@@ -316,6 +386,9 @@
316
386
  <zeroOrMore>
317
387
  <ref name="termdocsource"/>
318
388
  </zeroOrMore>
389
+ <optional>
390
+ <ref name="misccontainer"/>
391
+ </optional>
319
392
  <optional>
320
393
  <ref name="boilerplate"/>
321
394
  </optional>
@@ -327,6 +400,9 @@
327
400
  <ref name="annex"/>
328
401
  </zeroOrMore>
329
402
  <ref name="bibliography"/>
403
+ <zeroOrMore>
404
+ <ref name="indexsect"/>
405
+ </zeroOrMore>
330
406
  </element>
331
407
  </define>
332
408
  </grammar>
@@ -12,8 +12,7 @@ module Asciidoctor
12
12
  recommendation-corrigendum recommendation-errata recommendation-annex
13
13
  focus-group implementers-guide technical-paper technical-report
14
14
  joint-itu-iso-iec service-publication).include? doctype or
15
- @log.add("Document Attributes", nil,
16
- "#{doctype} is not a recognised document type")
15
+ @log.add("Document Attributes", nil, "#{doctype} is not a recognised document type")
17
16
  end
18
17
 
19
18
  def stage_validate(xmldoc)
@@ -41,8 +40,7 @@ module Asciidoctor
41
40
  xmldoc.xpath("//bibdata/series/title").each do |s|
42
41
  series = s.text.sub(/^[A-Z]: /, "")
43
42
  t.downcase.include?(series.downcase) and
44
- @log.add("Document Attributes", nil,
45
- "Title includes series name #{series}")
43
+ @log.add("Document Attributes", nil, "Title includes series name #{series}")
46
44
  end
47
45
  end
48
46
 
@@ -99,7 +97,7 @@ module Asciidoctor
99
97
 
100
98
  def itu_identifier_validate(xmldoc)
101
99
  s = xmldoc.xpath("//bibdata/docidentifier[@type = 'ITU']").each do |x|
102
- /^ITU-[RTF] [AD-VX-Z]\.[0-9]+$/.match(x.text) or
100
+ /^ITU-[RTD] [AD-VX-Z]\.[0-9]+$/.match(x.text) or
103
101
  @log.add("Style", nil, "#{x.text} does not match ITU document "\
104
102
  "identifier conventions")
105
103
  end
@@ -108,6 +106,16 @@ module Asciidoctor
108
106
  def section_validate(doc)
109
107
  super
110
108
  section_check(doc.root)
109
+ unnumbered_check(doc.root)
110
+ end
111
+
112
+ def unnumbered_check(xmldoc)
113
+ doctype = xmldoc&.at("//bibdata/ext/doctype")&.text
114
+ xmldoc.xpath("//clause[@unnumbered = 'true']").each do |c|
115
+ next if doctype == "resolution" and c.parent.name == "sections" and
116
+ !c.at("./preceding-sibling::clause")
117
+ @log.add("Style", c, "Unnumbered clause out of place")
118
+ end
111
119
  end
112
120
 
113
121
  # Editing Guidelines 7.2, 7.3
@@ -3,6 +3,7 @@ require "fileutils"
3
3
  require_relative "./ref.rb"
4
4
  require_relative "./xref.rb"
5
5
  require_relative "./terms.rb"
6
+ require_relative "./cleanup.rb"
6
7
 
7
8
  module IsoDoc
8
9
  module ITU
@@ -31,6 +32,11 @@ module IsoDoc
31
32
  " &ndash; "
32
33
  end
33
34
 
35
+ def para_class(node)
36
+ return "supertitle" if node["class"] == "supertitle"
37
+ super
38
+ end
39
+
34
40
  def ol_depth(node)
35
41
  return super unless node["class"] == "steps" or
36
42
  node.at(".//ancestor::xmlns:ol[@class = 'steps']")
@@ -48,21 +54,19 @@ module IsoDoc
48
54
  div.h1 **{ class: r_a ? "RecommendationAnnex" : "Annex" } do |t|
49
55
  name&.children&.each { |c2| parse(c2, t) }
50
56
  end
51
- annex_obligation_subtitle(annex, div)
57
+ annex_obligation_subtitle(annex, div) unless @meta.get[:doctype_original] == "resolution"
52
58
  end
53
59
 
54
60
  def annex_obligation_subtitle(annex, div)
55
61
  info = annex["obligation"] == "informative"
56
62
  div.p **{class: "annex_obligation" } do |p|
57
- p << (info ? @i18n.inform_annex : @i18n.norm_annex).
58
- sub(/%/, @meta.get[:doctype] || "")
63
+ p << (info ? @i18n.inform_annex : @i18n.norm_annex).sub(/%/, @meta.get[:doctype] || "")
59
64
  end
60
65
  end
61
66
 
62
67
  def annex(isoxml, out)
63
68
  isoxml.xpath(ns("//annex")).each do |c|
64
- @meta.get[:doctype_original] == "recommendation-annex" or
65
- page_break(out)
69
+ @meta.get[:doctype_original] == "recommendation-annex" or page_break(out)
66
70
  out.div **attr_code(id: c["id"], class: "Section3") do |s|
67
71
  annex_name(c, nil, s) unless c.at(ns("./title"))
68
72
  c.elements.each do |c1|
@@ -75,67 +79,52 @@ module IsoDoc
75
79
  end
76
80
  end
77
81
 
78
- def cleanup(docxml)
82
+ def info(isoxml, out)
83
+ @meta.ip_notice_received isoxml, out
84
+ @meta.techreport isoxml, out
79
85
  super
80
- term_cleanup(docxml)
81
- refs_cleanup(docxml)
82
- title_cleanup(docxml)
83
- end
84
-
85
- def title_cleanup(docxml)
86
- docxml.xpath("//h1[@class = 'RecommendationAnnex']").each do |h|
87
- h.name = "p"
88
- h["class"] = "h1Annex"
89
- end
90
- docxml
91
- end
92
-
93
- def term_cleanup(docxml)
94
- term_cleanup1(docxml)
95
- term_cleanup2(docxml)
96
- docxml
97
86
  end
98
87
 
99
- def term_cleanup1(docxml)
100
- docxml.xpath("//p[@class = 'Terms']").each do |d|
101
- h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
102
- d.children.first.previous = "<b>#{h2.children.to_xml}</b>&nbsp;"
103
- d["id"] = h2["id"]
104
- h2.remove
88
+ def middle_title(isoxml, out)
89
+ if @meta.get[:doctype] == "Resolution"
90
+ middle_title_resolution(isoxml, out)
91
+ else
92
+ middle_title_recommendation(isoxml, out)
105
93
  end
106
94
  end
107
95
 
108
- def term_cleanup2(docxml)
109
- docxml.xpath("//p[@class = 'TermNum']").each do |d|
110
- d1 = d.next_element and d1.name == "p" or next
111
- d1.children.each { |e| e.parent = d }
112
- d1.remove
96
+ def middle_title_resolution(isoxml, out)
97
+ res = isoxml.at(ns("//bibdata/title[@type = 'resolution']"))
98
+ out.p(**{ align: "center", style: "text-align:center;" }) do |p|
99
+ res.children.each { |n| parse(n, p) }
113
100
  end
101
+ out.p(**{ class: "zzSTDTitle2" }) { |p| p << @meta.get[:doctitle] }
102
+ middle_title_resolution_subtitle(isoxml, out)
114
103
  end
115
104
 
116
- def refs_cleanup(docxml)
117
- docxml.xpath("//tx[following-sibling::tx]").each do |tx|
118
- tx << tx.next_element.remove.children
119
- end
120
- docxml.xpath("//tx").each do |tx|
121
- tx.name = "td"
122
- tx["colspan"] = "2"
123
- tx.wrap("<tr></tr>")
105
+ def middle_title_resolution_subtitle(isoxml, out)
106
+ out.p(**{ align: "center", style: "text-align:center;" }) do |p|
107
+ p.i do |i|
108
+ i << "("
109
+ isoxml.at(ns("//bibdata/title[@type = 'resolution-placedate']")).children.each { |n| parse(n, i) }
110
+ i << ")"
111
+ end
112
+ isoxml.xpath(ns("//note[@type = 'title-footnote']")).each do |f|
113
+ footnote_parse(f, p)
114
+ end
124
115
  end
125
- docxml
126
116
  end
127
117
 
128
- def info(isoxml, out)
129
- @meta.ip_notice_received isoxml, out
130
- @meta.techreport isoxml, out
131
- super
132
- end
133
-
134
- def middle_title(out)
118
+ def middle_title_recommendation(isoxml, out)
135
119
  out.p(**{ class: "zzSTDTitle1" }) do |p|
136
120
  id = @meta.get[:docnumber] and p << "#{@meta.get[:doctype]} #{id}"
137
121
  end
138
- out.p(**{ class: "zzSTDTitle2" }) { |p| p << @meta.get[:doctitle] }
122
+ out.p(**{ class: "zzSTDTitle2" }) do |p|
123
+ p << @meta.get[:doctitle]
124
+ isoxml.xpath(ns("//note[@type = 'title-footnote']")).each do |f|
125
+ footnote_parse(f, p)
126
+ end
127
+ end
139
128
  s = @meta.get[:docsubtitle] and
140
129
  out.p(**{ class: "zzSTDTitle3" }) { |p| p << s }
141
130
  end
@@ -178,7 +167,6 @@ module IsoDoc
178
167
  div.p do |p|
179
168
  name and p.span **{ class: "note_label" } do |s|
180
169
  name.children.each { |n| parse(n, s) }
181
- #s << note_delim
182
170
  end
183
171
  end
184
172
  node.children.each { |n| parse(n, div) }
@@ -187,6 +175,36 @@ module IsoDoc
187
175
  def table_footnote_reference_format(a)
188
176
  a.content = a.content + ")"
189
177
  end
178
+
179
+ def note_parse(node, out)
180
+ return if node["type"] == "title-footnote"
181
+ super
182
+ end
183
+
184
+ # can have supertitle in resolution
185
+ def clause(isoxml, out)
186
+ isoxml.xpath(ns(middle_clause(isoxml))).each do |c|
187
+ clause_core(c, out)
188
+ end
189
+ end
190
+
191
+ def clause_core(c, out)
192
+ out.div **attr_code(clause_attrs(c)) do |s|
193
+ c.elements.each do |c1|
194
+ if c1.name == "title" then clause_name(nil, c1, s, nil)
195
+ else
196
+ parse(c1, s)
197
+ end
198
+ end
199
+ end
200
+ end
201
+
202
+ def scope(isoxml, out, num)
203
+ return super unless @meta.get[:doctype_original] == "resolution"
204
+ f = isoxml.at(ns("//clause[@type = 'scope']")) or return num
205
+ clause_core(f, out)
206
+ num + 1
207
+ end
190
208
  end
191
209
  end
192
210
  end
@@ -0,0 +1,55 @@
1
+ module IsoDoc
2
+ module ITU
3
+ module BaseConvert
4
+ def cleanup(docxml)
5
+ super
6
+ term_cleanup(docxml)
7
+ refs_cleanup(docxml)
8
+ title_cleanup(docxml)
9
+ end
10
+
11
+ def title_cleanup(docxml)
12
+ docxml.xpath("//h1[@class = 'RecommendationAnnex']").each do |h|
13
+ h.name = "p"
14
+ h["class"] = "h1Annex"
15
+ end
16
+ docxml
17
+ end
18
+
19
+ def term_cleanup(docxml)
20
+ term_cleanup1(docxml)
21
+ term_cleanup2(docxml)
22
+ docxml
23
+ end
24
+
25
+ def term_cleanup1(docxml)
26
+ docxml.xpath("//p[@class = 'Terms']").each do |d|
27
+ h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
28
+ d.children.first.previous = "<b>#{h2.children.to_xml}</b>&nbsp;"
29
+ d["id"] = h2["id"]
30
+ h2.remove
31
+ end
32
+ end
33
+
34
+ def term_cleanup2(docxml)
35
+ docxml.xpath("//p[@class = 'TermNum']").each do |d|
36
+ d1 = d.next_element and d1.name == "p" or next
37
+ d1.children.each { |e| e.parent = d }
38
+ d1.remove
39
+ end
40
+ end
41
+
42
+ def refs_cleanup(docxml)
43
+ docxml.xpath("//tx[following-sibling::tx]").each do |tx|
44
+ tx << tx.next_element.remove.children
45
+ end
46
+ docxml.xpath("//tx").each do |tx|
47
+ tx.name = "td"
48
+ tx["colspan"] = "2"
49
+ tx.wrap("<tr></tr>")
50
+ end
51
+ docxml
52
+ end
53
+ end
54
+ end
55
+ end
@@ -115,7 +115,7 @@ MERGEFORMAT </span><span lang=EN-GB style='font-weight:normal'><span
115
115
  style='mso-element:field-separator'></span></span><![endif]--><span lang=FR-CH
116
116
  style='mso-ansi-language:FR-CH;font-weight:normal;mso-no-proof:yes'>ii</span><!--[if supportFields]><span
117
117
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-end'></span></span><![endif]--><span
118
- lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<o:p></o:p></span></p>
118
+ lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumeric}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}<o:p></o:p></span></p>
119
119
  </div>
120
120
 
121
121
  <div style='mso-element:footer' id=ef2l>
@@ -127,11 +127,12 @@ MERGEFORMAT </span><span lang=EN-GB style='font-weight:normal'><span
127
127
  style='mso-element:field-separator'></span></span><![endif]--><span lang=FR-CH
128
128
  style='mso-ansi-language:FR-CH;font-weight:normal;mso-no-proof:yes'>ii</span><!--[if supportFields]><span
129
129
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-end'></span></span><![endif]--><span
130
- lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<o:p></o:p></span></p>
130
+ lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumeric}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}</span></p>
131
131
  </div>
132
132
 
133
133
  <div style='mso-element:footer' id=f2>
134
- <p class=FooterQP style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
134
+ <p class=FooterQP style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumeric}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}
135
+ <span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
135
136
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-begin'></span>
136
137
  PAGE<span style='mso-spacerun:yes'>  </span>\* MERGEFORMAT <span
137
138
  style='mso-element:field-separator'></span></span><![endif]--><span lang=EN-GB
@@ -141,7 +142,8 @@ lang=EN-GB style='font-weight:normal'><o:p></o:p></span></p>
141
142
  </div>
142
143
 
143
144
  <div style='mso-element:footer' id=f2l>
144
- <p class=FooterQPLandscape style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
145
+ <p class=FooterQPLandscape style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumeric}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}
146
+ <span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
145
147
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-begin'></span>
146
148
  PAGE<span style='mso-spacerun:yes'>  </span>\* MERGEFORMAT <span
147
149
  style='mso-element:field-separator'></span></span><![endif]--><span lang=EN-GB
@@ -159,7 +161,7 @@ MERGEFORMAT </span><span lang=EN-GB style='font-weight:normal'><span
159
161
  style='mso-element:field-separator'></span></span><![endif]--><span lang=FR-CH
160
162
  style='mso-ansi-language:FR-CH;font-weight:normal;mso-no-proof:yes'>ii</span><!--[if supportFields]><span
161
163
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-end'></span></span><![endif]--><span
162
- lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<o:p></o:p></span></p>
164
+ lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumeric}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}</span></p>
163
165
  </div>
164
166
 
165
167
  <div style='mso-element:footer' id=ef3l>
@@ -171,11 +173,12 @@ MERGEFORMAT </span><span lang=EN-GB style='font-weight:normal'><span
171
173
  style='mso-element:field-separator'></span></span><![endif]--><span lang=FR-CH
172
174
  style='mso-ansi-language:FR-CH;font-weight:normal;mso-no-proof:yes'>ii</span><!--[if supportFields]><span
173
175
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-end'></span></span><![endif]--><span
174
- lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<o:p></o:p></span></p>
176
+ lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumeric}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}</span></p>
175
177
  </div>
176
178
 
177
179
  <div style='mso-element:footer' id=f3>
178
- <p class=FooterQP style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
180
+ <p class=FooterQP style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumeric}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}
181
+ <span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
179
182
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-begin'></span>
180
183
  PAGE<span style='mso-spacerun:yes'>  </span>\* MERGEFORMAT <span
181
184
  style='mso-element:field-separator'></span></span><![endif]--><span lang=EN-GB
@@ -185,7 +188,8 @@ lang=EN-GB style='font-weight:normal'><o:p></o:p></span></p>
185
188
  </div>
186
189
 
187
190
  <div style='mso-element:footer' id=f3l>
188
- <p class=FooterQPLandscape style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
191
+ <p class=FooterQPLandscape style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumeric}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}
192
+ <span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
189
193
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-begin'></span>
190
194
  PAGE<span style='mso-spacerun:yes'>  </span>\* MERGEFORMAT <span
191
195
  style='mso-element:field-separator'></span></span><![endif]--><span lang=EN-GB