metanorma-iso 1.3.21 → 1.3.26

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +8 -7
  3. data/.github/workflows/ubuntu.yml +8 -7
  4. data/.github/workflows/windows.yml +8 -8
  5. data/Gemfile +2 -0
  6. data/lib/asciidoctor/iso/base.rb +22 -0
  7. data/lib/asciidoctor/iso/biblio.rng +142 -37
  8. data/lib/asciidoctor/iso/cleanup.rb +19 -2
  9. data/lib/asciidoctor/iso/front.rb +19 -72
  10. data/lib/asciidoctor/iso/front_id.rb +196 -0
  11. data/lib/asciidoctor/iso/isodoc.rng +48 -2
  12. data/lib/asciidoctor/iso/isostandard-amd.rng +98 -0
  13. data/lib/asciidoctor/iso/isostandard.rng +17 -1
  14. data/lib/asciidoctor/iso/macros.rb +21 -0
  15. data/lib/asciidoctor/iso/section.rb +18 -32
  16. data/lib/asciidoctor/iso/term_lookup_cleanup.rb +87 -0
  17. data/lib/asciidoctor/iso/validate.rb +41 -21
  18. data/lib/asciidoctor/iso/validate_requirements.rb +1 -1
  19. data/lib/asciidoctor/iso/validate_section.rb +2 -2
  20. data/lib/asciidoctor/iso/validate_style.rb +7 -6
  21. data/lib/isodoc/iso/base_convert.rb +48 -64
  22. data/lib/isodoc/iso/html/header.html +10 -6
  23. data/lib/isodoc/iso/html/html_iso_titlepage.html +27 -18
  24. data/lib/isodoc/iso/html/isodoc.scss +49 -28
  25. data/lib/isodoc/iso/html/scripts.html +23 -21
  26. data/lib/isodoc/iso/html/style-human.scss +25 -2
  27. data/lib/isodoc/iso/html/style-iso.scss +20 -2
  28. data/lib/isodoc/iso/html/word_iso_titlepage.html +23 -2
  29. data/lib/isodoc/iso/html/wordstyle.scss +80 -39
  30. data/lib/isodoc/iso/html_convert.rb +7 -9
  31. data/lib/isodoc/iso/iso.amendment.xsl +4597 -0
  32. data/lib/isodoc/iso/iso.international-standard.xsl +4597 -0
  33. data/lib/isodoc/iso/metadata.rb +74 -44
  34. data/lib/isodoc/iso/pdf_convert.rb +39 -0
  35. data/lib/isodoc/iso/sections.rb +66 -0
  36. data/lib/isodoc/iso/sts_convert.rb +29 -0
  37. data/lib/metanorma-iso.rb +2 -0
  38. data/lib/metanorma/iso/processor.rb +16 -1
  39. data/lib/metanorma/iso/version.rb +1 -1
  40. data/metanorma-iso.gemspec +4 -1
  41. data/spec/asciidoctor-iso/amd_spec.rb +726 -0
  42. data/spec/asciidoctor-iso/base_spec.rb +43 -21
  43. data/spec/asciidoctor-iso/blocks_spec.rb +21 -9
  44. data/spec/asciidoctor-iso/cleanup_spec.rb +203 -175
  45. data/spec/asciidoctor-iso/inline_spec.rb +2 -1
  46. data/spec/asciidoctor-iso/macros_spec.rb +275 -0
  47. data/spec/asciidoctor-iso/refs_spec.rb +7 -4
  48. data/spec/asciidoctor-iso/section_spec.rb +8 -8
  49. data/spec/assets/iso.xml +64 -1
  50. data/spec/isodoc/amd_spec.rb +606 -0
  51. data/spec/isodoc/i18n_spec.rb +12 -20
  52. data/spec/isodoc/inline_spec.rb +2 -2
  53. data/spec/isodoc/iso_spec.rb +1 -1
  54. data/spec/isodoc/metadata_spec.rb +12 -4
  55. data/spec/isodoc/postproc_spec.rb +20 -119
  56. data/spec/isodoc/ref_spec.rb +5 -5
  57. data/spec/isodoc/section_spec.rb +36 -13
  58. data/spec/isodoc/table_spec.rb +22 -22
  59. data/spec/isodoc/terms_spec.rb +2 -2
  60. data/spec/isodoc/xref_spec.rb +19 -19
  61. data/spec/metanorma/processor_spec.rb +2 -2
  62. data/spec/spec_helper.rb +13 -1
  63. metadata +57 -5
  64. data/asciidoctor-iso.gemspec.old +0 -50
@@ -16,7 +16,7 @@ module Asciidoctor
16
16
  (is|are)_not_(allowed | permitted |
17
17
  acceptable | permissible) |
18
18
  (is|are)_not_to_be |
19
- do_not )
19
+ [.,:;]_do_not )
20
20
  \\b
21
21
  REGEXP
22
22
  REQUIREMENT_RE =
@@ -22,7 +22,7 @@ module Asciidoctor
22
22
 
23
23
  # ISO/IEC DIR 2, 15.4
24
24
  def normref_validate(root)
25
- f = root.at("//references[title = 'Normative References']") || return
25
+ f = root.at("//references[@normative = 'true']") || return
26
26
  f.at("./references | ./clause") &&
27
27
  @log.add("Style", f, "normative references contains subclauses")
28
28
  end
@@ -168,7 +168,7 @@ module Asciidoctor
168
168
  "//li[not(p)] | //dt | //dd[not(p)] | //td[not(p)] | //th[not(p)]".freeze
169
169
 
170
170
  NORM_BIBITEMS =
171
- "//references[title = 'Normative References']/bibitem".freeze
171
+ "//references[@normative = 'true']/bibitem".freeze
172
172
 
173
173
  # ISO/IEC DIR 2, 10.2
174
174
  def norm_bibitem_style(root)
@@ -1,6 +1,6 @@
1
1
  require "metanorma-standoc"
2
2
  require "nokogiri"
3
- require "pp"
3
+ require "tokenizer"
4
4
 
5
5
  module Asciidoctor
6
6
  module ISO
@@ -8,7 +8,7 @@ module Asciidoctor
8
8
  def extract_text(node)
9
9
  return "" if node.nil?
10
10
  node1 = Nokogiri::XML.fragment(node.to_s)
11
- node1.xpath("//link | //locality").each(&:remove)
11
+ node1.xpath("//link | //locality | //localityStack").each(&:remove)
12
12
  ret = ""
13
13
  node1.traverse { |x| ret += x.text if x.text? }
14
14
  ret
@@ -70,7 +70,7 @@ module Asciidoctor
70
70
  # and a negative match on its preceding token
71
71
  def style_two_regex_not_prev(n, text, re, re_prev, warning)
72
72
  return if text.nil?
73
- arr = text.split(/\W+/)
73
+ arr = Tokenizer::WhitespaceTokenizer.new.tokenize(text)
74
74
  arr.each_index do |i|
75
75
  m = re.match arr[i]
76
76
  m_prev = i.zero? ? nil : re_prev.match(arr[i - 1])
@@ -91,9 +91,10 @@ module Asciidoctor
91
91
  # ISO/IEC DIR 2, 9.1
92
92
  # ISO/IEC DIR 2, Table B.1
93
93
  def style_number(n, t)
94
- style_two_regex_not_prev(n, t, /^(?<num>-?[0-9]{4,}[,0-9]*)$/,
95
- %r{(\bISO|\bIEC|\bIEEE/)$},
96
- "number not broken up in threes")
94
+ style_two_regex_not_prev(
95
+ n, t, /^(?<num>-?[0-9]{4,}[,0-9]*)$/,
96
+ %r{\b(ISO|IEC|IEEE/|(in|January|February|March|April|May|June|August|September|October|November|December)\b)$},
97
+ "number not broken up in threes")
97
98
  style_regex(/\b(?<num>[0-9]+\.[0-9]+)/i,
98
99
  "possible decimal point", n, t)
99
100
  style_regex(/\b(?<num>billion[s]?)\b/i,
@@ -1,5 +1,6 @@
1
1
  require "isodoc"
2
2
  require_relative "metadata"
3
+ require_relative "sections"
3
4
  require "fileutils"
4
5
 
5
6
  module IsoDoc
@@ -9,34 +10,30 @@ module IsoDoc
9
10
  @meta = Metadata.new(lang, script, labels)
10
11
  end
11
12
 
12
- def implicit_reference(b)
13
- b&.at(ns("./docidentifier"))&.text == "IEV"
13
+ def convert1(docxml, filename, dir)
14
+ doctype = docxml&.at(ns("//bibdata/ext/doctype"))&.text
15
+ @amd = %w(amendment technical-corrigendum).include? doctype
16
+ if @amd
17
+ @oldsuppressheadingnumbers = @suppressheadingnumbers
18
+ @suppressheadingnumbers = true
19
+ end
20
+ super
14
21
  end
15
22
 
16
- def introduction(isoxml, out)
17
- f = isoxml.at(ns("//introduction")) || return
18
- num = f.at(ns(".//clause")) ? "0" : nil
19
- title_attr = { class: "IntroTitle" }
20
- page_break(out)
21
- out.div **{ class: "Section3", id: f["id"] } do |div|
22
- clause_name(num, @introduction_lbl, div, title_attr)
23
- f.elements.each do |e|
24
- if e.name == "patent-notice"
25
- e.elements.each { |e1| parse(e1, div) }
26
- else
27
- parse(e, div) unless e.name == "title"
28
- end
29
- end
23
+ def anchor_names(docxml)
24
+ if @amd
25
+ back_anchor_names(docxml)
26
+ note_anchor_names(docxml.xpath(ns("//annex//table | //annex//figure")))
27
+ note_anchor_names(docxml.xpath(ns("//annex")))
28
+ example_anchor_names(docxml.xpath(ns("//annex")))
29
+ list_anchor_names(docxml.xpath(ns("//annex")))
30
+ else
31
+ super
30
32
  end
31
33
  end
32
34
 
33
- def foreword(isoxml, out)
34
- f = isoxml.at(ns("//foreword")) || return
35
- page_break(out)
36
- out.div **attr_code(id: f["id"]) do |s|
37
- s.h1(**{ class: "ForewordTitle" }) { |h1| h1 << @foreword_lbl }
38
- f.elements.each { |e| parse(e, s) unless e.name == "title" }
39
- end
35
+ def implicit_reference(b)
36
+ b&.at(ns("./docidentifier"))&.text == "IEV"
40
37
  end
41
38
 
42
39
  def initial_anchor_names(d)
@@ -91,9 +88,9 @@ module IsoDoc
91
88
  end
92
89
  end
93
90
 
94
- def eref_localities1_zh(target, type, from, to)
91
+ def eref_localities1_zh(target, type, from, to, delim)
95
92
  subsection = from&.text&.match(/\./)
96
- ret = type == "list" ? "" : ","
93
+ ret = (delim == ";") ? ";" : (type == "list") ? "" : delim
97
94
  ret += " 第#{from.text}" if from
98
95
  ret += "&ndash;#{to}" if to
99
96
  loc = (@locality[type] || type.sub(/^locality:/, "").capitalize )
@@ -103,11 +100,11 @@ module IsoDoc
103
100
  ret
104
101
  end
105
102
 
106
- def eref_localities1(target, type, from, to, lang = "en")
103
+ def eref_localities1(target, type, from, to, delim, lang = "en")
107
104
  subsection = from&.text&.match(/\./)
108
105
  type = type.downcase
109
- return l10n(eref_localities1_zh(target, type, from, to)) if lang == "zh"
110
- ret = type == "list" ? "" : ","
106
+ return l10n(eref_localities1_zh(target, type, from, to, delim)) if lang == "zh"
107
+ ret = (delim == ";") ? ";" : (type == "list") ? "" : delim
111
108
  loc = @locality[type] || type.sub(/^locality:/, "").capitalize
112
109
  ret += " #{loc}" unless subsection && type == "clause" ||
113
110
  type == "list" || target.match(/^IEV$|^IEC 60050-/)
@@ -170,6 +167,15 @@ module IsoDoc
170
167
  end
171
168
  end
172
169
 
170
+ def insertall_after_here(node, insert, name)
171
+ node.children.each do |n|
172
+ next unless n.name == name
173
+ insert.next = n.remove
174
+ insert = n
175
+ end
176
+ insert
177
+ end
178
+
173
179
  def termexamples_before_termnotes(node)
174
180
  return unless node.at(ns("./termnote")) && node.at(ns("./termexample"))
175
181
  return unless insert = node.at(ns("./definition"))
@@ -177,53 +183,31 @@ module IsoDoc
177
183
  insert = insertall_after_here(node, insert, "termnote")
178
184
  end
179
185
 
180
- def term_parse(node, out)
186
+ def termdef_parse(node, out)
181
187
  termexamples_before_termnotes(node)
182
- out.p **{ class: "Terms", style:"text-align:left;" } do |p|
183
- node.children.each { |c| parse(c, p) }
184
- end
188
+ super
185
189
  end
186
190
 
187
191
  def clausedelim
188
192
  ""
189
193
  end
190
194
 
191
- def format_ref(ref, prefix, isopub, date, allparts)
192
- ref = ref.sub(/ \(All Parts\)/i, "")
193
- ref = docid_prefix(prefix, ref)
194
- return "[#{ref}]" if /^\d+$/.match(ref) && !prefix &&
195
- !/^\[.*\]$/.match(ref)
196
- ref
195
+ def reference_names(ref)
196
+ super
197
+ @anchors[ref["id"]] = { xref: @anchors[ref["id"]][:xref].
198
+ sub(/ \(All Parts\)/i, "") }
197
199
  end
198
200
 
199
201
  def table_footnote_reference_format(a)
200
202
  a.content = a.content + ")"
201
203
  end
202
204
 
203
- def clause_parse_title(node, div, c1, out)
204
- return inline_header_title(out, node, c1) if c1.nil?
205
- super
206
- end
207
-
208
205
  def cleanup(docxml)
209
206
  super
210
- remove_internal_hyperlinks(docxml)
211
207
  table_th_center(docxml)
212
208
  docxml
213
209
  end
214
210
 
215
- def remove_internal_hyperlinks(docxml)
216
- docxml.xpath("//a[@href]").each do |a|
217
- next unless /^#/.match(a[:href])
218
- anchor = a[:href].sub(/^#/, "")
219
- next if a["epub:type"] == "footnote"
220
- next unless @anchors[anchor]
221
- next unless @anchors[anchor][:type]
222
- next if @anchors[anchor][:type] == "clause"
223
- a.replace(a.children)
224
- end
225
- end
226
-
227
211
  def table_th_center(docxml)
228
212
  docxml.xpath("//thead//th | //thead//td").each do |th|
229
213
  th["align"] = "center"
@@ -232,14 +216,14 @@ module IsoDoc
232
216
  end
233
217
 
234
218
  def hierarchical_formula_names(clause, num)
235
- c = IsoDoc::Function::XrefGen::Counter.new
236
- clause.xpath(ns(".//formula")).each do |t|
237
- next if t["id"].nil? || t["id"].empty?
238
- @anchors[t["id"]] =
239
- anchor_struct("#{num}#{hiersep}#{c.increment(t).print}", t,
240
- t["inequality"] ? @inequality_lbl : @formula_lbl,
241
- "formula", t["unnumbered"])
242
- end
219
+ c = IsoDoc::Function::XrefGen::Counter.new
220
+ clause.xpath(ns(".//formula")).each do |t|
221
+ next if t["id"].nil? || t["id"].empty?
222
+ @anchors[t["id"]] =
223
+ anchor_struct("#{num}#{hiersep}#{c.increment(t).print}", t,
224
+ t["inequality"] ? @inequality_lbl : @formula_lbl,
225
+ "formula", t["unnumbered"])
226
+ end
243
227
  end
244
228
  end
245
229
  end
@@ -66,7 +66,7 @@ normal'>                            
99
99
 
100
100
  <div style='mso-element:header' id=eh2>
101
101
  <p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
102
- mso-line-height-rule:exactly'><span lang=EN-GB>{{ docnumber }}:{{ docyear }}(E){{ draftinfo }}</span></p>
102
+ mso-line-height-rule:exactly'><span lang=EN-GB>{{ docnumber_reference }}{{ draftinfo }}</span></p>
103
103
  </div>
104
104
 
105
105
  <div style='mso-element:header' id=eh2l>
106
106
  <p class=MsoHeaderLandscape align=left style='text-align:left;line-height:12.0pt;
107
- mso-line-height-rule:exactly'><span lang=EN-GB>{{ docnumber }}:{{ docyear }}(E){{ draftinfo }}</span></p>
107
+ mso-line-height-rule:exactly'><span lang=EN-GB>{{ docnumber_reference }}{{ draftinfo }}</span></p>
108
108
  </div>
109
109
 
110
110
  <div style='mso-element:header' id=h2>
111
111
  <p class=MsoHeader align=right style='text-align:right;line-height:12.0pt;
112
- mso-line-height-rule:exactly'><span lang=EN-GB>{{ docnumber }}:{{ docyear }}(E){{ draftinfo }}</span></p>
112
+ mso-line-height-rule:exactly'><span lang=EN-GB>{{ docnumber_reference }}{{ draftinfo }}</span></p>
113
113
  </div>
114
114
 
115
115
  <div style='mso-element:header' id=h2l>
116
116
  <p class=MsoHeaderLandscape align=right style='text-align:right;line-height:12.0pt;
117
- mso-line-height-rule:exactly'><span lang=EN-GB>{{ docnumber }}:{{ docyear }}(E){{ draftinfo }}</span></p>
117
+ mso-line-height-rule:exactly'><span lang=EN-GB>{{ docnumber_reference }}{{ draftinfo }}</span></p>
118
118
  </div>
119
119
 
120
120
  <div style='mso-element:footer' id=ef2>
@@ -238,8 +238,12 @@ lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>
238
238
  </div>
239
239
 
240
240
  <div style='mso-element:footer' id=f4>
241
-
241
+ {% if ics %}
242
242
  <p class=MsoFooter><b style='mso-bidi-font-weight:normal'><span>ICS {{ ics }}<o:p></o:p></span></b></p>
243
+ {% endif %}
244
+ {% if keywords.size > 0 %}
245
+ <p class=MsoFooter><b>Descriptors:</b> {{ keywords | join: ", " }}</p>
246
+ {% endif %}
243
247
 
244
248
  <p class=MsoFooter style='margin-top:0cm'><span lang=EN-AU style='font-size:
245
249
  10.0pt;mso-ansi-language:EN-AU'>Price based on </span><!--[if supportFields]><span
@@ -4,7 +4,7 @@
4
4
  <p class="coverpage_docnumber">{{ num }}</p>
5
5
  {% endfor %}
6
6
  {% else %}
7
- <p class="coverpage_docnumber">{{ docnumber }}(E) {{ draftinfo }}</p>
7
+ <p class="coverpage_docnumber">{{ docnumber_lang }} {{ draftinfo }}</p>
8
8
  {% endif %}
9
9
 
10
10
  {% if revdate %}
@@ -12,7 +12,7 @@
12
12
  {% endif %}
13
13
 
14
14
  {% if tc_docnumber.size > 0 %}
15
- <p class="coverpage_docnumber">{{ docnumber }}(E) {{ draftinfo }}</p>
15
+ <p class="coverpage_docnumber">{{ docnumber_lang }} {{ draftinfo }}</p>
16
16
  {% endif %}
17
17
 
18
18
  <p class="coverpage_techcommittee">{{ agency }}/{{ editorialgroup | join: "/" }}</p>
@@ -26,7 +26,14 @@ name="CVP_Secretariat_Loca">Secretariat: {{ secretariat }}

26
26
  {% if doctitlepartlabel %}<span class="partlabel">{{ doctitlepartlabel }}: </span>{% endif %}
27
27
  <span class="part">{{ doctitlepart }}</span>
28
28
  {% endif %}
29
- </div></div>
29
+ </div>
30
+ {% if doctitleamdlabel %}
31
+ <div class="doctitle-part">{{ doctitleamdlabel }}{% if doctitleamd %}: {{ doctitleamd }}{% endif %}</div>
32
+ {% endif %}
33
+ {% if doctitlecorrlabel %}
34
+ <div class="doctitle-part">{{ doctitlecorrlabel }}</div>
35
+ {% endif %}
36
+ </div>
30
37
 
31
38
  <div class="doctitle-fr"><div><span class="title">{{ docsubtitleintro }}{% if docsubtitleintro and docsubtitlemain %} &mdash; {% endif %}</span><span class="subtitle">{{ docsubtitlemain }}{% if docsubtitlemain and docsubtitlepart %} &mdash;{% endif %}</span>
32
39
  {% if docsubtitlepart %}
@@ -34,7 +41,14 @@ name="CVP_Secretariat_Loca">Secretariat: {{ secretariat }}

34
41
  {% if docsubtitlepartlabel %}<span class="partlabel">{{ docsubtitlepartlabel }}: </span>{% endif %}
35
42
  <span class="part">{{ docsubtitlepart }}</span>
36
43
  {% endif %}
37
- </div></div>
44
+ </div>
45
+ {% if docsubtitleamdlabel %}
46
+ <div>{{ docsubtitleamdlabel }}{% if docsubtitleamd %}: {{ docsubtitleamd }}{% endif %}</div>
47
+ {% endif %}
48
+ {% if docsubtitlecorrlabel %}
49
+ <div>{{ docsubtitlecorrlabel }}</div>
50
+ {% endif %}
51
+ </div>
38
52
 
39
53
  <div class="coverpage_docstage">
40
54
  {% if unpublished %}
@@ -45,19 +59,14 @@ name="CVP_Secretariat_Loca">Secretariat: {{ secretariat }}

45
59
  {% if unpublished %}
46
60
  <div class="coverpage_warning">
47
61
  <div id="boilerplate-license-destination"/>
48
- <!--
49
- <p>Warning for WDs
50
- and CDs</p>
51
-
52
- <p>This
53
- document is not an ISO International Standard. It is distributed for review and
54
- comment. It is subject to change without notice and may not be referred to as
55
- an International Standard.</p>
56
-
57
- <p>Recipients
58
- of this draft are invited to submit, with their comments, notification of any
59
- relevant patent rights of which they are aware and to provide supporting
60
- documentation.</p>
61
- -->
62
62
  </div>
63
63
  {% endif %}
64
+
65
+ {% if ics %}
66
+ <p><b>ICS:</b> {{ ics }}</p>
67
+ {% endif %}
68
+
69
+ {% if keywords.size > 0 %}
70
+ <p><b>Descriptors:</b> {{ keywords | join: ", " }}
71
+ {% endif %}
72
+
@@ -12,7 +12,7 @@ p.Sourcecode, li.Sourcecode, div.Sourcecode, pre.Sourcecode
12
12
  tab-stops:20.15pt;
13
13
  font-size:9.0pt;
14
14
  font-family:$monospacefont;
15
- mso-fareast-font-family:Calibri;
15
+ mso-fareast-font-family:"SimSun",serif;
16
16
  mso-bidi-font-family:"Courier New";
17
17
  mso-ansi-language:EN-GB;}
18
18
  p.pseudocode, li.pseudocode, div.pseudocode
@@ -29,7 +29,7 @@ p.pseudocode, li.pseudocode, div.pseudocode
29
29
  tab-stops:20.15pt;
30
30
  font-size:10.0pt;
31
31
  font-family:$bodyfont;
32
- mso-fareast-font-family:Calibri;
32
+ mso-fareast-font-family:"SimSun",serif;
33
33
  mso-bidi-font-family:"Courier New";
34
34
  mso-ansi-language:EN-GB;}
35
35
  p.Biblio, li.Biblio, div.Biblio
@@ -46,7 +46,7 @@ p.Biblio, li.Biblio, div.Biblio
46
46
  mso-pagination:widow-orphan;
47
47
  font-size:11.0pt;
48
48
  font-family:$bodyfont;
49
- mso-fareast-font-family:$bodyfont;
49
+ mso-fareast-font-family:"SimSun",serif;
50
50
  mso-bidi-font-family:$bodyfont;
51
51
  mso-ansi-language:EN-GB;}
52
52
  p.NormRef, li.NormRef, div.NormRef
@@ -63,7 +63,7 @@ p.NormRef, li.NormRef, div.NormRef
63
63
  mso-pagination:widow-orphan;
64
64
  font-size:11.0pt;
65
65
  font-family:$bodyfont;
66
- mso-fareast-font-family:$bodyfont;
66
+ mso-fareast-font-family:"SimSun",serif;
67
67
  mso-bidi-font-family:$bodyfont;
68
68
  mso-ansi-language:EN-GB;}
69
69
  p.FigureTitle
@@ -82,7 +82,7 @@ p.FigureTitle
82
82
  font-size:11.0pt;
83
83
  font-family:$bodyfont;
84
84
  font-weight:bold;
85
- mso-fareast-font-family:$bodyfont;
85
+ mso-fareast-font-family:"SimSun",serif;
86
86
  mso-bidi-font-family:$bodyfont;
87
87
  mso-ansi-language:EN-GB;}
88
88
  p.AdmonitionTitle, p.RecommendationTitle
@@ -101,7 +101,7 @@ p.AdmonitionTitle, p.RecommendationTitle
101
101
  font-size:11.0pt;
102
102
  font-family:$bodyfont;
103
103
  font-weight:bold;
104
- mso-fareast-font-family:$bodyfont;
104
+ mso-fareast-font-family:"SimSun",serif;
105
105
  mso-bidi-font-family:$bodyfont;
106
106
  mso-ansi-language:EN-GB;}
107
107
  p.SourceTitle
@@ -120,7 +120,7 @@ p.SourceTitle
120
120
  font-size:11.0pt;
121
121
  font-family:$bodyfont;
122
122
  font-weight:bold;
123
- mso-fareast-font-family:$bodyfont;
123
+ mso-fareast-font-family:"SimSun",serif;
124
124
  mso-bidi-font-family:$bodyfont;
125
125
  mso-ansi-language:EN-GB;}
126
126
  p.TableTitle
@@ -139,7 +139,7 @@ p.TableTitle
139
139
  font-size:11.0pt;
140
140
  font-weight:bold;
141
141
  font-family:$bodyfont;
142
- mso-fareast-font-family:$bodyfont;
142
+ mso-fareast-font-family:"SimSun",serif;
143
143
  mso-bidi-font-family:$bodyfont;
144
144
  mso-ansi-language:EN-GB;}
145
145
  p.Note, div.Note, li.Note, p.TableFootnote, div.TableFootnote, li.TableFootnote
@@ -157,7 +157,7 @@ p.Note, div.Note, li.Note, p.TableFootnote, div.TableFootnote, li.TableFootnote
157
157
  font-size:10.0pt;
158
158
  mso-bidi-font-size:11.0pt;
159
159
  font-family:$bodyfont;
160
- mso-fareast-font-family:$bodyfont;
160
+ mso-fareast-font-family:"SimSun",serif;
161
161
  mso-bidi-font-family:$bodyfont;
162
162
  mso-ansi-language:EN-GB;}
163
163
  /* may need to be revised */
@@ -183,7 +183,7 @@ p.ANNEX, li.ANNEX, div.ANNEX
183
183
  font-size:14.0pt;
184
184
  mso-bidi-font-size:11.0pt;
185
185
  font-family:$headerfont;
186
- mso-fareast-font-family:$headerfont;
186
+ mso-fareast-font-family:"SimHei",serif;
187
187
  mso-bidi-font-family:$headerfont;
188
188
  mso-ansi-language:EN-GB;
189
189
  mso-fareast-language:JA;
@@ -205,7 +205,7 @@ p.BiblioTitle, li.BiblioTitle, div.BiblioTitle
205
205
  font-size:14.0pt;
206
206
  mso-bidi-font-size:11.0pt;
207
207
  font-family:$headerfont;
208
- mso-fareast-font-family:$headerfont;
208
+ mso-fareast-font-family:"SimHei",serif;
209
209
  mso-bidi-font-family:$headerfont;
210
210
  mso-ansi-language:EN-GB;
211
211
  font-weight:bold;
@@ -224,7 +224,7 @@ p.Definition, li.Definition, div.Definition
224
224
  tab-stops:20.15pt;
225
225
  font-size:11.0pt;
226
226
  font-family:$bodyfont;
227
- mso-fareast-font-family:$bodyfont;
227
+ mso-fareast-font-family:"SimSun",serif;
228
228
  mso-bidi-font-family:$bodyfont;
229
229
  mso-ansi-language:EN-GB;}
230
230
  p.ForewordTitle, li.ForewordTitle, div.ForewordTitle
@@ -246,7 +246,7 @@ p.ForewordTitle, li.ForewordTitle, div.ForewordTitle
246
246
  font-size:14.0pt;
247
247
  mso-bidi-font-size:11.0pt;
248
248
  font-family:$headerfont;
249
- mso-fareast-font-family:$headerfont;
249
+ mso-fareast-font-family:"SimHei",serif;
250
250
  mso-bidi-font-family:$headerfont;
251
251
  mso-ansi-language:EN-GB;
252
252
  font-weight:bold;
@@ -270,7 +270,7 @@ p.IntroTitle, li.IntroTitle, div.IntroTitle
270
270
  font-size:14.0pt;
271
271
  mso-bidi-font-size:11.0pt;
272
272
  font-family:$headerfont;
273
- mso-fareast-font-family:$headerfont;
273
+ mso-fareast-font-family:"SimHei",serif;
274
274
  mso-bidi-font-family:$headerfont;
275
275
  mso-ansi-language:EN-GB;
276
276
  font-weight:bold;
@@ -293,7 +293,7 @@ p.TitlePageSubhead, li.TitlePageSubhead, div.TitlePageSubhead {
293
293
  font-size:14.0pt;
294
294
  mso-bidi-font-size:11.0pt;
295
295
  font-family:$headerfont;
296
- mso-fareast-font-family:$headerfont;
296
+ mso-fareast-font-family:"SimHei",serif;
297
297
  mso-bidi-font-family:$headerfont;
298
298
  mso-ansi-language:EN-GB;
299
299
  font-weight:bold;
@@ -313,7 +313,7 @@ p.Terms, li.Terms, div.Terms
313
313
  tab-stops:20.15pt;
314
314
  font-size:11.0pt;
315
315
  font-family:$headerfont;
316
- mso-fareast-font-family:$headerfont;
316
+ mso-fareast-font-family:"SimHei",serif;
317
317
  mso-bidi-font-family:$headerfont;
318
318
  mso-ansi-language:EN-GB;
319
319
  font-weight:bold;
@@ -332,7 +332,7 @@ p.AltTerms, li.AltTerms, div.AltTerms
332
332
  tab-stops:20.15pt;
333
333
  font-size:11.0pt;
334
334
  font-family:$bodyfont;
335
- mso-fareast-font-family:$bodyfont;
335
+ mso-fareast-font-family:"SimSun",serif;
336
336
  mso-bidi-font-family:$bodyfont;
337
337
  mso-ansi-language:EN-GB;
338
338
  mso-bidi-font-weight:normal;}
@@ -350,7 +350,7 @@ p.DeprecatedTerms, li.DeprecatedTerms, div.DeprecatedTerms
350
350
  tab-stops:20.15pt;
351
351
  font-size:11.0pt;
352
352
  font-family:$bodyfont;
353
- mso-fareast-font-family:$bodyfont;
353
+ mso-fareast-font-family:"SimSun",serif;
354
354
  mso-bidi-font-family:$bodyfont;
355
355
  mso-ansi-language:EN-GB;
356
356
  mso-bidi-font-weight:normal;}
@@ -367,7 +367,7 @@ p.TermNum, li.TermNum, div.TermNum
367
367
  tab-stops:20.15pt;
368
368
  font-size:11.0pt;
369
369
  font-family:$headerfont;
370
- mso-fareast-font-family:$headerfont;
370
+ mso-fareast-font-family:"SimHei",serif;
371
371
  mso-bidi-font-family:$headerfont;
372
372
  mso-ansi-language:EN-GB;
373
373
  font-weight:bold;
@@ -391,7 +391,7 @@ p.zzContents, li.zzContents, div.zzContents
391
391
  font-size:14.0pt;
392
392
  mso-bidi-font-size:11.0pt;
393
393
  font-family:$headerfont;
394
- mso-fareast-font-family:$headerfont;
394
+ mso-fareast-font-family:"SimHei",serif;
395
395
  mso-bidi-font-family:$headerfont;
396
396
  mso-ansi-language:EN-GB;
397
397
  font-weight:bold;
@@ -412,7 +412,7 @@ p.zzCopyright, li.zzCopyright, div.zzCopyright
412
412
  mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;
413
413
  font-size:10.0pt;
414
414
  font-family:$bodyfont;
415
- mso-fareast-font-family:$bodyfont;
415
+ mso-fareast-font-family:"SimSun",serif;
416
416
  mso-bidi-font-family:$bodyfont;
417
417
  mso-ansi-language:EN-GB;}
418
418
  p.zzCopyright1
@@ -431,7 +431,7 @@ p.zzCopyright1
431
431
  mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;
432
432
  font-size:10.0pt;
433
433
  font-family:$bodyfont;
434
- mso-fareast-font-family:$bodyfont;
434
+ mso-fareast-font-family:"SimSun",serif;
435
435
  mso-bidi-font-family:$bodyfont;
436
436
  mso-ansi-language:EN-GB;}
437
437
  p.zzAddress {
@@ -483,7 +483,7 @@ p.zzSTDTitle, li.zzSTDTitle, div.zzSTDTitle
483
483
  font-size:16.0pt;
484
484
  mso-bidi-font-size:11.0pt;
485
485
  font-family:$headerfont;
486
- mso-fareast-font-family:$headerfont;
486
+ mso-fareast-font-family:"SimHei",serif;
487
487
  mso-bidi-font-family:$headerfont;
488
488
  mso-ansi-language:EN-GB;
489
489
  font-weight:bold;
@@ -505,11 +505,32 @@ p.zzSTDTitle1, li.zzSTDTitle1, div.zzSTDTitle1
505
505
  font-size:16.0pt;
506
506
  mso-bidi-font-size:11.0pt;
507
507
  font-family:$headerfont;
508
- mso-fareast-font-family:$headerfont;
508
+ mso-fareast-font-family:"SimHei",serif;
509
509
  mso-bidi-font-family:$headerfont;
510
510
  mso-ansi-language:EN-GB;
511
511
  font-weight:bold;
512
512
  mso-bidi-font-weight:normal;}
513
+ p.zzSTDTitle2, li.zzSTDTitle2, div.zzSTDTitle2
514
+ {mso-style-name:zzSTDTitle;
515
+ mso-style-noshow:yes;
516
+ mso-style-unhide:no;
517
+ mso-style-next:Normal;
518
+ margin-top:0pt;
519
+ margin-right:0cm;
520
+ margin-bottom:18.0pt;
521
+ margin-left:0cm;
522
+ line-height:17.5pt;
523
+ mso-line-height-rule:exactly;
524
+ mso-pagination:widow-orphan;
525
+ mso-hyphenate:none;
526
+ tab-stops:20.15pt;
527
+ font-size:16.0pt;
528
+ mso-bidi-font-size:11.0pt;
529
+ font-family:$headerfont;
530
+ mso-fareast-font-family:"SimHei",serif;
531
+ mso-bidi-font-family:$headerfont;
532
+ mso-ansi-language:EN-GB;
533
+ mso-bidi-font-weight:normal;}
513
534
  p.Quote, li.Quote, div.Quote
514
535
  {mso-style-priority:99;
515
536
  margin-top:0cm;
@@ -522,7 +543,7 @@ p.Quote, li.Quote, div.Quote
522
543
  tab-stops:20.15pt;
523
544
  font-size:11.0pt;
524
545
  font-family:$bodyfont;
525
- mso-fareast-font-family:$bodyfont;
546
+ mso-fareast-font-family:"SimSun",serif;
526
547
  mso-bidi-font-family:$bodyfont;
527
548
  mso-ansi-language:EN-GB;}
528
549
  p.QuoteAttribution
@@ -536,7 +557,7 @@ p.Admonition, li.Admonition, div.Admonition
536
557
  font-family:$bodyfont;
537
558
  mso-ascii-font-family:$bodyfont;
538
559
  mso-ascii-theme-font:minor-latin;
539
- mso-fareast-font-family:$bodyfont;
560
+ mso-fareast-font-family:"SimSun",serif;
540
561
  mso-fareast-theme-font:minor-fareast;
541
562
  mso-hansi-font-family:$bodyfont;
542
563
  mso-hansi-theme-font:minor-latin;
@@ -557,7 +578,7 @@ p.Code, li.Code, div.Code
557
578
  font-size:9.0pt;
558
579
  mso-bidi-font-size:11.0pt;
559
580
  font-family:$monospacefont;
560
- mso-fareast-font-family:Calibri;
581
+ mso-fareast-font-family:"SimSun",serif;
561
582
  mso-bidi-font-family:"Cambria";
562
583
  mso-ansi-language:EN-GB;}
563
584
  p.Formula, li.Formula, div.Formula
@@ -573,7 +594,7 @@ p.Formula, li.Formula, div.Formula
573
594
  tab-stops:right 487.45pt;
574
595
  font-size:11.0pt;
575
596
  font-family:$bodyfont;
576
- mso-fareast-font-family:$bodyfont;
597
+ mso-fareast-font-family:"SimSun",serif;
577
598
  mso-bidi-font-family:$bodyfont;
578
599
  mso-ansi-language:EN-GB;}
579
600
  table.dl