metanorma-iso 1.3.21 → 1.3.26

Sign up to get free protection for your applications and to get access to all the features.
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