metanorma-standoc 1.9.3 → 1.10.2

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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +3 -13
  3. data/.hound.yml +3 -1
  4. data/.rubocop.yml +4 -6
  5. data/lib/asciidoctor/standoc/base.rb +3 -1
  6. data/lib/asciidoctor/standoc/blocks.rb +1 -1
  7. data/lib/asciidoctor/standoc/cleanup.rb +1 -2
  8. data/lib/asciidoctor/standoc/cleanup_block.rb +0 -1
  9. data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +2 -2
  10. data/lib/asciidoctor/standoc/cleanup_footnotes.rb +0 -1
  11. data/lib/asciidoctor/standoc/cleanup_inline.rb +117 -77
  12. data/lib/asciidoctor/standoc/cleanup_maths.rb +0 -1
  13. data/lib/asciidoctor/standoc/cleanup_ref.rb +7 -0
  14. data/lib/asciidoctor/standoc/cleanup_section.rb +13 -81
  15. data/lib/asciidoctor/standoc/cleanup_section_names.rb +75 -0
  16. data/lib/asciidoctor/standoc/cleanup_terms.rb +19 -18
  17. data/lib/asciidoctor/standoc/converter.rb +1 -0
  18. data/lib/asciidoctor/standoc/front.rb +0 -1
  19. data/lib/asciidoctor/standoc/front_contributor.rb +66 -42
  20. data/lib/asciidoctor/standoc/inline.rb +45 -34
  21. data/lib/asciidoctor/standoc/isodoc.rng +65 -7
  22. data/lib/asciidoctor/standoc/macros.rb +7 -5
  23. data/lib/asciidoctor/standoc/macros_plantuml.rb +21 -23
  24. data/lib/asciidoctor/standoc/macros_terms.rb +60 -23
  25. data/lib/asciidoctor/standoc/section.rb +19 -12
  26. data/lib/asciidoctor/standoc/term_lookup_cleanup.rb +69 -30
  27. data/lib/asciidoctor/standoc/terms.rb +1 -1
  28. data/lib/asciidoctor/standoc/utils.rb +0 -1
  29. data/lib/asciidoctor/standoc/validate.rb +22 -8
  30. data/lib/isodoc/html/html_titlepage.html +81 -0
  31. data/lib/isodoc/html/htmlstyle.css +983 -0
  32. data/lib/isodoc/html/htmlstyle.scss +714 -0
  33. data/lib/isodoc/html/scripts.html +71 -0
  34. data/lib/metanorma/standoc/processor.rb +16 -7
  35. data/lib/metanorma/standoc/version.rb +1 -1
  36. data/metanorma-standoc.gemspec +2 -2
  37. data/spec/asciidoctor/base_spec.rb +693 -553
  38. data/spec/asciidoctor/blocks_spec.rb +6 -6
  39. data/spec/asciidoctor/cleanup_spec.rb +899 -688
  40. data/spec/asciidoctor/inline_spec.rb +62 -14
  41. data/spec/asciidoctor/isobib_cache_spec.rb +4 -6
  42. data/spec/asciidoctor/lists_spec.rb +147 -135
  43. data/spec/asciidoctor/macros_json2text_spec.rb +1 -1
  44. data/spec/asciidoctor/macros_spec.rb +714 -168
  45. data/spec/asciidoctor/refs_spec.rb +1527 -1532
  46. data/spec/asciidoctor/validate_spec.rb +352 -304
  47. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +51 -51
  48. data/spec/vcr_cassettes/isobib_get_123.yml +14 -14
  49. data/spec/vcr_cassettes/isobib_get_123_1.yml +27 -27
  50. data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +36 -36
  51. data/spec/vcr_cassettes/isobib_get_123_2001.yml +12 -12
  52. data/spec/vcr_cassettes/isobib_get_124.yml +13 -13
  53. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +14 -14
  54. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +46 -46
  55. metadata +10 -5
@@ -12,7 +12,7 @@ module Asciidoctor
12
12
  def sectiontype1(node)
13
13
  node&.attr("heading")&.downcase ||
14
14
  node.title.gsub(%r{<index>.*?</index>}m, "").gsub(/<[^>]+>/, "")
15
- .strip.downcase
15
+ .strip.downcase
16
16
  end
17
17
 
18
18
  def sectiontype(node, level = true)
@@ -21,6 +21,7 @@ module Asciidoctor
21
21
  return ret1 if "symbols and abbreviated terms" == ret1
22
22
  return nil unless !level || node.level == 1
23
23
  return nil if @seen_headers.include? ret
24
+
24
25
  @seen_headers << ret
25
26
  ret1
26
27
  end
@@ -48,11 +49,14 @@ module Asciidoctor
48
49
  script: node.attributes["script"],
49
50
  number: node.attributes["number"],
50
51
  type: node.attributes["type"],
51
- annex: ( ((node.attr("style") == "appendix" || node.role == "appendix") &&
52
- node.level == 1) ? true : nil),
53
- preface: (
54
- (node.role == "preface" || node.attr("style") == "preface") ? true : nil) }
52
+ annex: (if (node.attr("style") == "appendix" || node.role == "appendix") &&
53
+ node.level == 1
54
+ true
55
+ end),
56
+ preface: (
57
+ node.role == "preface" || node.attr("style") == "preface" ? true : nil) }
55
58
  return ret unless node.attributes["change"]
59
+
56
60
  ret.merge(change: node.attributes["change"],
57
61
  path: node.attributes["path"],
58
62
  path_end: node.attributes["path_end"],
@@ -75,7 +79,7 @@ module Asciidoctor
75
79
  symbols_parse(symbols_attrs(node, a), xml, node)
76
80
  when "acknowledgements"
77
81
  acknowledgements_parse(a, xml, node)
78
- when "bibliography"
82
+ when "bibliography"
79
83
  bibliography_parse(a, xml, node)
80
84
  else
81
85
  if @term_def then term_def_subclause_parse(a, xml, node)
@@ -88,9 +92,9 @@ module Asciidoctor
88
92
  bibliography_parse(a, xml, node)
89
93
  elsif node.attr("style") == "bibliography"
90
94
  bibliography_parse(a, xml, node)
91
- elsif node.attr("style") == "abstract"
95
+ elsif node.attr("style") == "abstract"
92
96
  abstract_parse(a, xml, node)
93
- elsif node.attr("style") == "index"
97
+ elsif node.attr("style") == "index"
94
98
  indexsect_parse(a, xml, node)
95
99
  elsif node.attr("style") == "appendix" && node.level == 1
96
100
  annex_parse(a, xml, node)
@@ -102,10 +106,13 @@ module Asciidoctor
102
106
  end
103
107
 
104
108
  def set_obligation(attrs, node)
105
- attrs[:obligation] = node.attributes.has_key?("obligation") ?
106
- node.attr("obligation") :
107
- node.parent.attributes.has_key?("obligation") ?
108
- node.parent.attr("obligation") : "normative"
109
+ attrs[:obligation] = if node.attributes.has_key?("obligation")
110
+ node.attr("obligation")
111
+ elsif node.parent.attributes.has_key?("obligation")
112
+ node.parent.attr("obligation")
113
+ else
114
+ "normative"
115
+ end
109
116
  end
110
117
 
111
118
  def preamble(node)
@@ -3,18 +3,17 @@
3
3
  module Asciidoctor
4
4
  module Standoc
5
5
  # Intelligent term lookup xml modifier
6
- # Lookup all `term` and `calause` tags and replace `termxref` tags with
7
- # `xref`:target tag
8
6
  class TermLookupCleanup
9
7
  AUTOMATIC_GENERATED_ID_REGEXP = /\A_/.freeze
10
8
  EXISTING_TERM_REGEXP = /\Aterm-/.freeze
9
+ EXISTING_SYMBOL_REGEXP = /\Asymbol-/.freeze
11
10
 
12
11
  attr_reader :xmldoc, :termlookup, :log
13
12
 
14
13
  def initialize(xmldoc, log)
15
14
  @xmldoc = xmldoc
16
15
  @log = log
17
- @termlookup = {}
16
+ @termlookup = { term: {}, symbol: {} }
18
17
  @idhash = {}
19
18
  end
20
19
 
@@ -22,13 +21,20 @@ module Asciidoctor
22
21
  @idhash = populate_idhash
23
22
  @termlookup = replace_automatic_generated_ids_terms
24
23
  set_termxref_tags_target
24
+ concept_cleanup
25
25
  end
26
26
 
27
27
  private
28
28
 
29
+ def concept_cleanup
30
+ xmldoc.xpath("//concept").each do |n|
31
+ n.delete("type")
32
+ end
33
+ end
34
+
29
35
  def populate_idhash
30
36
  xmldoc.xpath("//*[@id]").each_with_object({}) do |n, mem|
31
- next unless /^term-/.match?(n["id"])
37
+ next unless /^(term|symbol)-/.match?(n["id"])
32
38
 
33
39
  mem[n["id"]] = true
34
40
  end
@@ -37,62 +43,95 @@ module Asciidoctor
37
43
  def set_termxref_tags_target
38
44
  xmldoc.xpath("//termxref").each do |node|
39
45
  target = normalize_ref_id(node.text)
40
- if termlookup[target].nil?
46
+ if termlookup[:term][target].nil? && termlookup[:symbol][target].nil?
41
47
  remove_missing_ref(node, target)
42
48
  next
43
49
  end
44
- modify_ref_node(node, target)
50
+ x = node.at("../xrefrender")
51
+ modify_ref_node(x, target)
52
+ node.name = "refterm"
45
53
  end
46
54
  end
47
55
 
48
56
  def remove_missing_ref(node, target)
57
+ if node.at("../concept[@type = 'symbol']")
58
+ remove_missing_ref_symbol(node, target)
59
+ else
60
+ remove_missing_ref_term(node, target)
61
+ end
62
+ end
63
+
64
+ def remove_missing_ref_term(node, target)
49
65
  log.add("AsciiDoc Input", node,
50
66
  %(Error: Term reference in `term[#{target}]` missing: \
51
67
  "#{target}" is not defined in document))
52
- term_name_node = node.previous.previous
53
- term_name_node.remove
54
- term_name_node.name = "strong"
55
- term_name_node.children.first.content =
56
- %(term "#{term_name_node.text}" not resolved)
57
- node.add_previous_sibling(term_name_node)
58
- node.remove
68
+ node.name = "strong"
69
+ node.at("../xrefrender").remove
70
+ display = node&.at("../renderterm")&.remove&.children
71
+ display = [] if display.nil? || display&.to_xml == node.text
72
+ d = display.empty? ? "" : ", display <tt>#{display.to_xml}</tt>"
73
+ node.children = "term <tt>#{node.text}</tt>#{d} "\
74
+ "not resolved via ID <tt>#{target}</tt>"
75
+ end
76
+
77
+ def remove_missing_ref_symbol(node, target)
78
+ log.add("AsciiDoc Input", node,
79
+ %(Error: Symbol reference in `symbol[#{target}]` missing: \
80
+ "#{target}" is not defined in document))
81
+ node.name = "strong"
82
+ node.at("../xrefrender").remove
83
+ display = node&.at("../renderterm")&.remove&.children
84
+ display = [] if display.nil? || display&.to_xml == node.text
85
+ d = display.empty? ? "" : ", display <tt>#{display.to_xml}</tt>"
86
+ node.children = "symbol <tt>#{node.text}</tt>#{d} "\
87
+ "not resolved via ID <tt>#{target}</tt>"
59
88
  end
60
89
 
61
90
  def modify_ref_node(node, target)
62
91
  node.name = "xref"
63
- node["target"] = termlookup[target]
64
- node.children.remove
65
- node.remove_attribute("defaultref")
92
+ s = termlookup[:symbol][target]
93
+ t = termlookup[:term][target]
94
+ type = node.parent["type"]
95
+ if type == "term" || !type && t
96
+ node["target"] = t
97
+ elsif type == "symbol" || !type && s
98
+ node["target"] = s
99
+ end
66
100
  end
67
101
 
68
102
  def replace_automatic_generated_ids_terms
69
- xmldoc.xpath("//term").each.with_object({}) do |term_node, res|
70
- normalize_id_and_memorize(term_node, res, "./preferred")
103
+ r = xmldoc.xpath("//term").each.with_object({}) do |n, res|
104
+ normalize_id_and_memorize(n, res, "./preferred", "term")
105
+ end
106
+ s = xmldoc.xpath("//definitions//dt").each.with_object({}) do |n, res|
107
+ normalize_id_and_memorize(n, res, ".", "symbol")
71
108
  end
109
+ { term: r, symbol: s }
72
110
  end
73
111
 
74
- def normalize_id_and_memorize(term_node, res_table, text_selector)
75
- term_text = normalize_ref_id(term_node.at(text_selector).text)
76
- unless AUTOMATIC_GENERATED_ID_REGEXP.match(term_node["id"]).nil?
77
- id = unique_text_id(term_text)
78
- term_node["id"] = id
112
+ def normalize_id_and_memorize(node, res_table, text_selector, prefix)
113
+ term_text = normalize_ref_id(node.at(text_selector).text)
114
+ unless AUTOMATIC_GENERATED_ID_REGEXP.match(node["id"]).nil? &&
115
+ !node["id"].nil?
116
+ id = unique_text_id(term_text, prefix)
117
+ node["id"] = id
79
118
  @idhash[id] = true
80
119
  end
81
- res_table[term_text] = term_node["id"]
120
+ res_table[term_text] = node["id"]
82
121
  end
83
122
 
84
123
  def normalize_ref_id(text)
85
- text.downcase.gsub(/[[:space:]]/, "-")
124
+ Metanorma::Utils::to_ncname(text.downcase.gsub(/[[:space:]]/, "-"))
86
125
  end
87
126
 
88
- def unique_text_id(text)
89
- unless @idhash["term-#{text}"]
90
- return "term-#{text}"
127
+ def unique_text_id(text, prefix)
128
+ unless @idhash["#{prefix}-#{text}"]
129
+ return "#{prefix}-#{text}"
91
130
  end
92
131
 
93
132
  (1..Float::INFINITY).lazy.each do |index|
94
- unless @idhash["term-#{text}-#{index}"]
95
- break("term-#{text}-#{index}")
133
+ unless @idhash["#{prefix}-#{text}-#{index}"]
134
+ break("#{prefix}-#{text}-#{index}")
96
135
  end
97
136
  end
98
137
  end
@@ -105,7 +105,7 @@ module Asciidoctor
105
105
  end
106
106
 
107
107
  TERM_REFERENCE_RE_STR = <<~REGEXP.freeze
108
- ^(?<xref><(xref|concept)[^>]+>([^<]*</(xref|concept)>)?)
108
+ ^(?<xref><(xref|concept)[^>]+>(.*?</(xref|concept)>)?)
109
109
  (,\s(?<text>.*))?
110
110
  $
111
111
  REGEXP
@@ -3,7 +3,6 @@ require "nokogiri"
3
3
  require "htmlentities"
4
4
  require "json"
5
5
  require "pathname"
6
- require "open-uri"
7
6
  require "uuidtools"
8
7
 
9
8
  module Asciidoctor
@@ -19,10 +19,10 @@ module Asciidoctor
19
19
  end
20
20
 
21
21
  def iev_validate(xmldoc)
22
+ @iev = init_iev or return
22
23
  xmldoc.xpath("//term").each do |t|
23
24
  /^IEC 60050-/.match(t&.at("./termsource/origin/@citeas")&.text) &&
24
25
  loc = t.xpath(SOURCELOCALITY)&.text or next
25
- @iev = init_iev or return
26
26
  iev = @iev.fetch(loc, xmldoc&.at("//language")&.text || "en") or next
27
27
  pref = t.xpath("./preferred").inject([]) do |m, x|
28
28
  m << x&.text&.downcase
@@ -38,6 +38,7 @@ module Asciidoctor
38
38
  norm_ref_validate(doc)
39
39
  repeat_id_validate(doc.root)
40
40
  iev_validate(doc.root)
41
+ concept_validate(doc)
41
42
  end
42
43
 
43
44
  def norm_ref_validate(doc)
@@ -54,6 +55,21 @@ module Asciidoctor
54
55
  clean_abort("Numeric reference in normative references", doc.to_xml)
55
56
  end
56
57
 
58
+ def concept_validate(doc)
59
+ found = false
60
+ doc.xpath("//concept/xref").each do |x|
61
+ next if doc.at("//term[@id = '#{x['target']}']")
62
+ next if doc.at("//definitions//dt[@id = '#{x['target']}']")
63
+
64
+ ref = x&.at("../refterm")&.text
65
+ @log.add("Anchors", x, "Concept #{ref} is pointing to "\
66
+ "#{x['target']}, which is not a term or symbol")
67
+ found = true
68
+ end
69
+ found and clean_abort("Concept not cross-referencing term or symbol",
70
+ doc.to_xml)
71
+ end
72
+
57
73
  def repeat_id_validate1(ids, elem)
58
74
  if ids[elem["id"]]
59
75
  @log.add("Anchors", elem, "Anchor #{elem['id']} has already been "\
@@ -78,13 +94,11 @@ module Asciidoctor
78
94
 
79
95
  def schema_validate(doc, schema)
80
96
  Tempfile.open(["tmp", ".xml"], encoding: "UTF-8") do |f|
81
- begin
82
- schema_validate1(f, doc, schema)
83
- rescue Jing::Error => e
84
- clean_abort("Jing failed with error: #{e}", doc.to_xml)
85
- ensure
86
- f.close!
87
- end
97
+ schema_validate1(f, doc, schema)
98
+ rescue Jing::Error => e
99
+ clean_abort("Jing failed with error: #{e}", doc.to_xml)
100
+ ensure
101
+ f.close!
88
102
  end
89
103
  end
90
104
 
@@ -0,0 +1,81 @@
1
+ <div class="document-stage-band" id="{{ stage | downcase | replace: ' ', '-' }}-band">
2
+ <p class="document-stage">{{ stage_display }}</p>
3
+ </div>
4
+
5
+ <div class="document-type-band" id="{{ doctype | downcase | replace: ' ', '-' }}-band">
6
+ <p class="document-type">{{org_abbrev}} {{ doctype_display }}</p>
7
+ </div>
8
+
9
+
10
+
11
+ <div id='toggle'> <span>&#x2022;</span> </div>
12
+
13
+ <header>
14
+
15
+ <!--<div class="WordSection1">-->
16
+ <div class="coverpage">
17
+ <div class="wrapper-top">
18
+
19
+ <div class="coverpage-doc-identity">
20
+ <div class="doc-number">
21
+ <span class="docnumber">{{ docnumber }}</span>
22
+ <span class="docnumber-separator">:</span>
23
+ <span class="docyear">{{ docyear }} {{ draftinfo }}</span>
24
+ </div>
25
+
26
+ <div class="coverpage-title">
27
+ {% if appendixtitle or parttitle or subparttitle %}
28
+ <span class="title-third">{{ doctitle }}</span>
29
+ <span class="title-third">{{ docsubtitle }}</span><br/>
30
+ {% if partid %}<span class="title-first">{{ partid}}: {{ parttitle }}</span><br/>{% endif %}
31
+ {% if partid_alt %}<span class="title-second">{{ partid_alt}}: {{ partsubtitle }}</span>{% endif %}
32
+ {% if subparttitle %}<span class="title-first">{{ subparttitle }}</span><br/>{% endif %}
33
+ {% if subpartsubtitle %}<span class="title-second">{{ subpartsubtitle }}</span><br/>{% endif %}
34
+ {% if provenancetitle %}<span class="title-first">{{ provenancetitle }}</span><br/>{% endif %}
35
+ {% if provenancesubtitle %}<span class="title-second">{{ provenancesubtitle }}</span><br/>{% endif %}
36
+ {% if appendixid %}<span class="title-first">{{ appendixid}}: {{ appendixtitle }}</span><br/>{% endif %}
37
+ {% if appendixid_alt %}<span class="title-second">{{ appendixid_alt}}: {{ appendixsubtitle }}</span>{% endif %}
38
+ {% if annexid %}<span class="title-first">{{ annexid}}: {{ annextitle }}</span><br/>{% endif %}
39
+ {% if annexid_alt %}<span class="title-second">{{ annexid_alt}}: {{ annexsubtitle }}</span>{% endif %}
40
+ {% else %}
41
+ <span class="title-first">{{ doctitle }}</span><br/>
42
+ <span class="title-second">{{ docsubtitle }}</span>
43
+ {% endif %}
44
+ </div>
45
+ </div>
46
+
47
+ {% if authors %}
48
+ <div class="coverpage-tc-name">
49
+ {% for item in authors %}
50
+ <span>{{item}} {% if authors_affiliations[forloop.index0] %}({{ authors_affiliations[forloop.index0] }}){% endif %}{% if forloop.last == false %}, {% endif %}{% endfor %}.
51
+ </div>
52
+ {% endif %}
53
+
54
+
55
+ </div>
56
+
57
+ <div class="wrapper-top-bottom"></div>
58
+
59
+ <div class="WordSection11">
60
+ <div class="coverpage-stage-block" >
61
+ <span class="coverpage-stage" id="{{ doctype | replace: ' ', '-' | downcase }}">{{org_abbrev}} {{ doctype_display }}</span>
62
+ </div>
63
+
64
+ <div class="coverpage-stage-block" >
65
+ <p><span class="coverpage-maturity" id="{{ stage | replace: ' ', '-' | downcase }}">{{ stage_display }}</span></p>
66
+ </div>
67
+
68
+ <div class="info-section">
69
+ <div class="copyright">
70
+ <div id="boilerplate-copyright-destination"/>
71
+ <div id="boilerplate-license-destination"/>
72
+ <div id="boilerplate-legal-destination"/>
73
+ <div id="boilerplate-feedback-destination"/>
74
+ </div>
75
+
76
+ <div class="rule"></div>
77
+ </div>
78
+ </div>
79
+
80
+
81
+ </header>
@@ -0,0 +1,983 @@
1
+ @charset "UTF-8";
2
+ /*
3
+ 0 CSS RESET
4
+ */
5
+ /* http://meyerweb.com/eric/tools/css/reset/
6
+ v2.0 | 20110126
7
+ License: none (public domain)
8
+ */
9
+ html, body, div, span, applet, object, iframe,
10
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
11
+ a, abbr, acronym, address, big, cite, code,
12
+ del, dfn, em, img, ins, kbd, q, s, samp,
13
+ small, strike, strong, sub, sup, tt, var,
14
+ b, u, i, center,
15
+ ol, ul, li,
16
+ fieldset, form, label, legend,
17
+ table, caption, tbody, tfoot, thead, tr, th, td,
18
+ article, aside, canvas, details, embed,
19
+ figure, figcaption, footer, header, hgroup,
20
+ menu, output, ruby, section, summary,
21
+ time, mark, audio, video {
22
+ margin: 0;
23
+ padding: 0; }
24
+
25
+ html, body, div, span, applet, object, iframe,
26
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
27
+ a, abbr, acronym, address, big, cite, code,
28
+ del, dfn, em, img, ins, kbd, q, s, samp,
29
+ small, strike, strong, sub, sup, tt, var,
30
+ b, u, i, center,
31
+ dl, dt, dd, ol, ul, li,
32
+ fieldset, form, label, legend,
33
+ table, caption, tbody, tfoot, thead, tr, th, td,
34
+ article, aside, canvas, details, embed,
35
+ figure, figcaption, footer, header, hgroup,
36
+ menu, nav, output, ruby, section, summary,
37
+ time, mark, audio, video {
38
+ border: 0;
39
+ font-size: 100%; }
40
+
41
+ html, body, div, span, applet, object, iframe,
42
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
43
+ a, abbr, acronym, address, big, cite, code,
44
+ del, dfn, em, img, ins, kbd, q, s, samp,
45
+ small, strike, strong, tt, var,
46
+ b, u, i, center,
47
+ dl, dd, ol, ul, li,
48
+ fieldset, form, label, legend,
49
+ table, caption, tbody, tfoot, thead, tr, th, td,
50
+ article, aside, canvas, details, embed,
51
+ figure, figcaption, footer, header, hgroup,
52
+ menu, nav, output, ruby, section, summary,
53
+ time, mark, audio, video {
54
+ vertical-align: baseline; }
55
+
56
+ html, body, div, span, applet, object, iframe,
57
+ p, blockquote,
58
+ a, abbr, acronym, address, big, cite,
59
+ del, dfn, em, img, ins, q, s,
60
+ small, strike, strong, sub, sup, var,
61
+ b, u, i, center,
62
+ dl, dt, dd, ol, ul, li,
63
+ fieldset, form, label, legend,
64
+ table, caption, tbody, tfoot, thead, tr, th, td,
65
+ article, aside, canvas, details, embed,
66
+ figure, figcaption, footer, header, hgroup,
67
+ menu, nav, output, ruby, section, summary,
68
+ time, mark, audio, video {
69
+ font-family: {{bodyfont}}; }
70
+
71
+ code, pre, tt, kbd, samp {
72
+ font-family: {{monospacefont}};
73
+ font-variant-ligatures: none; }
74
+
75
+ code *, pre *, tt *, kbd *, samp * {
76
+ font-family: {{monospacefont}} !important;
77
+ font-variant-ligatures: none; }
78
+
79
+ article, aside, details, figcaption, figure,
80
+ footer, header, hgroup, menu, nav, section {
81
+ display: block; }
82
+
83
+ table {
84
+ border-collapse: collapse;
85
+ border-spacing: 0; }
86
+
87
+ h1, h2, h3, h4, h5, h6 {
88
+ font-family: {{headerfont}}; }
89
+
90
+ blockquote, q {
91
+ quotes: none; }
92
+ blockquote:before, blockquote:after, q:before, q:after {
93
+ content: '';
94
+ content: none; }
95
+
96
+ .h2Annex {
97
+ font-family: {{headerfont}}; }
98
+
99
+ dl {
100
+ display: grid;
101
+ grid-template-columns: max-content auto; }
102
+ dl dt p, dl dd p {
103
+ margin-top: 0; }
104
+ dl dt {
105
+ grid-column-start: 1; }
106
+ dl dd {
107
+ grid-column-start: 2; }
108
+
109
+ b, strong {
110
+ font-weight: bold; }
111
+
112
+ div.document-stage-band, div.document-type-band {
113
+ background-color: #333333; }
114
+
115
+ a.FootnoteRef + a.FootnoteRef:before {
116
+ content: ", ";
117
+ vertical-align: super; }
118
+
119
+ .addition {
120
+ color: blue; }
121
+
122
+ .deletion {
123
+ color: red;
124
+ text-decoration: line-through; }
125
+
126
+ #brochure-band {
127
+ background-color: #0AC442; }
128
+
129
+ #brochure {
130
+ border-bottom: solid 3px #0AC442; }
131
+
132
+ #mise-en-pratique-band {
133
+ background-color: #540D6E; }
134
+
135
+ #mise-en-pratique {
136
+ border-bottom: solid 3px #540D6E; }
137
+
138
+ #rapport-band {
139
+ background-color: #D183C9; }
140
+
141
+ #rapport {
142
+ border-bottom: solid 3px #D183C9; }
143
+
144
+ #monographie-band {
145
+ background-color: #65AFFF; }
146
+
147
+ #monographie {
148
+ border-bottom: solid 3px #65AFFF; }
149
+
150
+ #guide-band {
151
+ background-color: #3A405A; }
152
+
153
+ #guide {
154
+ border-bottom: solid 3px #3A405A; }
155
+
156
+ #meeting-report-band {
157
+ background-color: #F26430; }
158
+
159
+ #meeting-report {
160
+ border-bottom: solid 3px #F26430; }
161
+
162
+ #technical-report-band {
163
+ background-color: #C84630; }
164
+
165
+ #technical-report {
166
+ border-bottom: solid 3px #C84630; }
167
+
168
+ #working-part-note-band {
169
+ background-color: #BFAE48; }
170
+
171
+ #working-part-note {
172
+ border-bottom: solid 3px #BFAE48; }
173
+
174
+ #strategy-band {
175
+ background-color: #BD9391; }
176
+
177
+ #strategy {
178
+ border-bottom: solid 3px #BD9391; }
179
+
180
+ #cipm-mra-band {
181
+ background-color: #004E64; }
182
+
183
+ #cipm-mra {
184
+ border-bottom: solid 3px #004E64; }
185
+
186
+ #resolution-band {
187
+ background-color: #53C170; }
188
+
189
+ #resolution {
190
+ border-bottom: solid 3px #53C170; }
191
+
192
+ #draft-proposal-band {
193
+ background-color: #39A0ED; }
194
+
195
+ #draft-proposal {
196
+ border-bottom: solid 3px #39A0ED; }
197
+
198
+ #draft-development-band {
199
+ background-color: #2D7393; }
200
+
201
+ #draft-development {
202
+ border-bottom: solid 3px #2D7393; }
203
+
204
+ #in-force-band {
205
+ background-color: #53C170; }
206
+
207
+ #in-force {
208
+ border-bottom: solid 3px #53C170; }
209
+
210
+ #retired-band {
211
+ background-color: #2E382E; }
212
+
213
+ #retired {
214
+ border-bottom: solid 3px #2E382E; }
215
+
216
+ /*
217
+ 1. HTML & Body
218
+ */
219
+ body {
220
+ margin-left: auto;
221
+ margin-right: auto;
222
+ max-width: 100%;
223
+ font-size: {{normalfontsize}};
224
+ font-weight: 300;
225
+ line-height: 1.4em;
226
+ color: #1d1d1d;
227
+ background-color: #ffffff;
228
+ font-weight: 400; }
229
+ body main {
230
+ margin: 0 3em 0 6em; }
231
+ body pre * {
232
+ font-family: {{bodyfont}} !important; }
233
+
234
+ /*
235
+ 2. Responsive navigation layout
236
+ */
237
+ #toc {
238
+ font-family: {{bodyfont}};
239
+ font-weight: 400; }
240
+ #toc ul {
241
+ margin: 0;
242
+ padding: 0;
243
+ list-style: none; }
244
+ #toc ul li a {
245
+ padding: 5px 10px; }
246
+ #toc ul a {
247
+ color: #485094;
248
+ text-decoration: none;
249
+ display: block; }
250
+ #toc ul a:hover {
251
+ box-shadow: none;
252
+ color: #485094; }
253
+ #toc .h2 {
254
+ padding-left: 30px; }
255
+ #toc .h3 {
256
+ padding-left: 50px; }
257
+ #toc .toc-active, #toc li:hover {
258
+ background: #C70039;
259
+ box-shadow: inset -5px 0px 10px -5px #C70039 !important; }
260
+ #toc .toc-active a, #toc li:hover a {
261
+ color: #485094; }
262
+ @media print {
263
+ #toc .toc-active, #toc li:hover {
264
+ background: white;
265
+ box-shadow: none !important; }
266
+ #toc .toc-active a {
267
+ color: #485094; }
268
+ #toc li:hover a {
269
+ color: black; } }
270
+ @media screen and (max-width: 768px) {
271
+ #toc {
272
+ padding: 0 1.5em;
273
+ overflow: visible; } }
274
+ #toc .toc-active a {
275
+ color: white; }
276
+ #toc .toc-active,
277
+ #toc li:hover {
278
+ box-shadow: none !important; }
279
+ #toc .toc-active a,
280
+ #toc li:hover a {
281
+ color: white;
282
+ background: none;
283
+ box-shadow: none; }
284
+ #toc li a {
285
+ text-transform: uppercase; }
286
+ #toc ul a:hover {
287
+ box-shadow: none;
288
+ color: white; }
289
+
290
+ @media screen and (min-width: 768px) {
291
+ nav {
292
+ position: fixed;
293
+ top: 0;
294
+ bottom: 0;
295
+ left: 0;
296
+ width: 323px;
297
+ font-size: 0.9em;
298
+ overflow: auto;
299
+ padding: 0 0 0 45px;
300
+ background-color: #f7f7f7; } }
301
+
302
+ @media print {
303
+ nav {
304
+ position: relative;
305
+ width: auto;
306
+ font-size: 0.9em;
307
+ overflow: auto;
308
+ padding: 0;
309
+ margin-right: 0;
310
+ background-color: white; } }
311
+
312
+ @media screen and (min-width: 768px) {
313
+ #toggle {
314
+ position: fixed;
315
+ height: 100%;
316
+ width: 30px;
317
+ background-color: #C70039;
318
+ color: white !important;
319
+ cursor: pointer;
320
+ z-index: 100; }
321
+ #toggle span {
322
+ text-align: center;
323
+ width: 100%;
324
+ position: absolute;
325
+ top: 50%;
326
+ transform: translate(0, -50%); } }
327
+
328
+ @media screen and (max-width: 768px) {
329
+ #toggle {
330
+ display: none; } }
331
+
332
+ @media print {
333
+ #toggle {
334
+ display: none; } }
335
+
336
+ @media screen and (min-width: 768px) {
337
+ .container {
338
+ padding-left: 360px; }
339
+ .rule.toc {
340
+ display: none; }
341
+ h1.toc-contents {
342
+ margin-top: 1em; }
343
+ ul#toc-list {
344
+ padding: 0;
345
+ margin: 0; } }
346
+
347
+ div.figure {
348
+ line-height: 1.6em;
349
+ padding: 1.5em;
350
+ margin: 2em 0 1em 0;
351
+ overflow: auto; }
352
+ div.figure .FigureTitle, div.figure .figure-title {
353
+ font-weight: 700;
354
+ font-size: 1em;
355
+ text-align: center; }
356
+ div.figure > img {
357
+ margin-left: auto;
358
+ margin-right: auto;
359
+ display: block;
360
+ max-width: 100%;
361
+ height: auto; }
362
+
363
+ /*
364
+ Document types + stages
365
+ */
366
+ .document-type-band {
367
+ left: 0;
368
+ top: 180px;
369
+ height: 100%;
370
+ position: fixed;
371
+ display: block;
372
+ z-index: 102; }
373
+ .document-type-band > :first-child {
374
+ position: relative;
375
+ width: 25px;
376
+ font-weight: 400;
377
+ color: white;
378
+ text-transform: uppercase;
379
+ font-size: 0.9em;
380
+ font-weight: 400;
381
+ letter-spacing: 0.05em;
382
+ margin: 0;
383
+ margin-left: 6px;
384
+ writing-mode: tb-rl;
385
+ -webkit-transform: rotate(180deg);
386
+ -moz-transform: rotate(180deg);
387
+ -o-transform: rotate(180deg);
388
+ white-space: nowrap;
389
+ display: block;
390
+ bottom: 0; }
391
+ @media print {
392
+ .document-type-band {
393
+ display: none; } }
394
+ .document-type-band .document-type {
395
+ top: 20px; }
396
+
397
+ .document-stage-band {
398
+ left: 0;
399
+ top: 0;
400
+ height: 100%;
401
+ position: fixed;
402
+ display: block;
403
+ z-index: 101;
404
+ box-shadow: -5px 0px 10px #1d1d1d; }
405
+ .document-stage-band > :first-child {
406
+ position: relative;
407
+ width: 25px;
408
+ font-weight: 400;
409
+ height: 150;
410
+ color: white;
411
+ text-transform: uppercase;
412
+ font-size: 0.9em;
413
+ font-weight: 400;
414
+ letter-spacing: 0.05em;
415
+ margin: 0;
416
+ margin-left: 6px;
417
+ writing-mode: tb-rl;
418
+ -webkit-transform: rotate(180deg);
419
+ -moz-transform: rotate(180deg);
420
+ -o-transform: rotate(180deg);
421
+ white-space: nowrap;
422
+ display: block;
423
+ bottom: 0; }
424
+ @media print {
425
+ .document-stage-band {
426
+ display: none; } }
427
+ .document-stage-band > :first-child {
428
+ font-weight: 300; }
429
+
430
+ p.document-stage {
431
+ position: relative;
432
+ width: 25px;
433
+ font-weight: 400;
434
+ height: 150;
435
+ color: white;
436
+ text-transform: uppercase;
437
+ font-size: 0.9em;
438
+ font-weight: 400;
439
+ letter-spacing: 0.05em;
440
+ margin: 0;
441
+ margin-left: 6px;
442
+ writing-mode: tb-rl;
443
+ -webkit-transform: rotate(180deg);
444
+ -moz-transform: rotate(180deg);
445
+ -o-transform: rotate(180deg);
446
+ white-space: nowrap;
447
+ display: block;
448
+ bottom: 0; }
449
+
450
+ #governance-band p.document-type {
451
+ height: 230px !important; }
452
+
453
+ p.document-stage {
454
+ font-weight: 300;
455
+ height: 160px; }
456
+
457
+ .coverpage-maturity {
458
+ font-family: {{bodyfont}};
459
+ font-weight: 400;
460
+ font-size: 1em;
461
+ margin: 0 0 2em 0;
462
+ text-transform: uppercase; }
463
+
464
+ /*
465
+ 3. TYPOGRAPHY
466
+ */
467
+ /*
468
+ 3.1 Titles
469
+ */
470
+ h1, h2, h3, h4, h5, h6 {
471
+ font-family: {{headerfont}};
472
+ color: #C70039;
473
+ font-weight: 300;
474
+ margin-top: 1.6em;
475
+ margin-bottom: 0.3em; }
476
+
477
+ h1 {
478
+ font-size: 1.6em;
479
+ text-transform: uppercase;
480
+ margin-top: 2em; }
481
+
482
+ h1#content {
483
+ margin-top: 2em; }
484
+
485
+ h2 {
486
+ margin-top: 1.3em;
487
+ font-size: 1.3em;
488
+ font-weight: 400; }
489
+
490
+ h3 {
491
+ margin-top: 1.1em;
492
+ font-size: 1.1em;
493
+ font-weight: 100; }
494
+
495
+ .TermNum, .Terms, .AltTerms {
496
+ color: #C70039;
497
+ font-weight: 100; }
498
+
499
+ h2.TermNum {
500
+ margin-bottom: 0; }
501
+
502
+ p.Terms {
503
+ font-size: 1.1em;
504
+ line-height: 1.5em;
505
+ margin: 0; }
506
+
507
+ p.AltTerms {
508
+ /*
509
+ font-style: italic;
510
+ */
511
+ font-size: 1.1em;
512
+ margin: 0; }
513
+
514
+ /*
515
+ 3.2 Links
516
+ */
517
+ a, a:visited {
518
+ text-decoration: none;
519
+ color: #485094; }
520
+
521
+ a:hover {
522
+ color: white;
523
+ background: #C70039;
524
+ box-shadow: 3px 0 0 #C70039, -3px 0 0 #C70039; }
525
+
526
+ ::selection,
527
+ ::-moz-selection {
528
+ background: #C70039;
529
+ color: white; }
530
+
531
+ /*
532
+ 3.3 Lists
533
+ */
534
+ ul, ol {
535
+ margin-left: 1.2em; }
536
+
537
+ ul li {
538
+ list-style: none; }
539
+
540
+ ul li:before {
541
+ content: "—";
542
+ display: inline-block;
543
+ width: 1em;
544
+ margin-left: -1.2em; }
545
+
546
+ ul li p {
547
+ display: inline; }
548
+
549
+ ul li:first-child {
550
+ margin-top: 1em; }
551
+
552
+ #toc-list ul {
553
+ margin-bottom: 0.25em; }
554
+
555
+ #toc-list li {
556
+ list-style-type: none; }
557
+
558
+ #toc li:before {
559
+ content: " ";
560
+ display: none; }
561
+
562
+ /* https://github.com/metanorma/metanorma-bipm/issues/47 */
563
+ ol[class="alphabet"] {
564
+ counter-reset: alphabet; }
565
+
566
+ ol[class="roman"] {
567
+ counter-reset: roman; }
568
+
569
+ ol[class="alphabet"] ol[class="alphabet"] {
570
+ counter-reset: none; }
571
+
572
+ ol[class="alphabet"] > li {
573
+ list-style: none;
574
+ position: relative; }
575
+
576
+ ol[class="alphabet"] ol[class="alphabet"] > li {
577
+ list-style: inherit; }
578
+
579
+ ol[class="alphabet"] > li:before {
580
+ counter-increment: alphabet;
581
+ content: counter(alphabet, lower-alpha) ") ";
582
+ position: absolute;
583
+ left: -1.4em; }
584
+
585
+ ol[class="alphabet"] ol[class="alphabet"] > li:before {
586
+ counter-increment: none;
587
+ content: initial; }
588
+
589
+ ol[class="roman"] ol[class="roman"] {
590
+ counter-reset: none; }
591
+
592
+ ol[class="roman"] > li {
593
+ list-style: none;
594
+ position: relative; }
595
+
596
+ ol[class="roman"] ol[class="roman"] > li {
597
+ list-style: inherit; }
598
+
599
+ ol[class="roman"] > li:before {
600
+ counter-increment: roman;
601
+ content: "(" counter(roman, lower-roman) ") ";
602
+ position: absolute;
603
+ left: -2.0em; }
604
+
605
+ ol[class="roman"] ol[class="roman"] > li:before {
606
+ counter-increment: none;
607
+ content: initial; }
608
+
609
+ /*
610
+ 3.4 Rules
611
+ */
612
+ .rule {
613
+ width: 100%;
614
+ height: 1px;
615
+ background-color: #0e1a85;
616
+ margin: 2em 0; }
617
+
618
+ /*
619
+ 3.5 Bibliograhy
620
+ */
621
+ p.Biblio, p.NormRef {
622
+ margin-top: 1em;
623
+ margin-left: 2em; }
624
+
625
+ /*
626
+ 3.6 Source Code + figures
627
+ */
628
+ .figure,
629
+ pre,
630
+ .pseudocode {
631
+ background-color: #f7f7f7;
632
+ font-size: {{monospacefontsize}};
633
+ line-height: 1.6em;
634
+ padding: 1.5em;
635
+ margin: 2em 0 1em 0;
636
+ overflow: auto; }
637
+ .figure .SourceTitle,
638
+ pre .SourceTitle,
639
+ .pseudocode .SourceTitle {
640
+ font-weight: 700;
641
+ font-size: 1em;
642
+ text-align: center; }
643
+
644
+ pre {
645
+ font-family: {{monospacefont}};
646
+ font-variant-ligatures: none; }
647
+
648
+ .AdmonitionTitle {
649
+ font-weight: 700;
650
+ font-size: 1em;
651
+ text-align: center; }
652
+
653
+ .RecommendationTitle {
654
+ font-weight: 700;
655
+ font-size: 1em;
656
+ text-align: center; }
657
+
658
+ .FigureTitle,
659
+ .SourceTitle {
660
+ font-weight: 700;
661
+ font-size: 1em;
662
+ text-align: center; }
663
+
664
+ /*
665
+ 3.7 Notes
666
+ */
667
+ .Note {
668
+ background-color: #fff495;
669
+ color: #47430c;
670
+ padding: 1.2em;
671
+ margin: 1em 0 1em 0; }
672
+ .Note p {
673
+ margin: 0; }
674
+
675
+ /*
676
+ 3.8 Examples
677
+ */
678
+ .example {
679
+ background-color: #e1eef1;
680
+ padding: 1.2em;
681
+ margin: 2em 0 1em 0;
682
+ text-align: left;
683
+ color: #424242;
684
+ padding-left: 2.7em; }
685
+ .example p {
686
+ margin: 0; }
687
+ .example .example-title {
688
+ font-weight: 700;
689
+ text-transform: uppercase;
690
+ margin-left: -1.5em; }
691
+ .example .example-title {
692
+ margin-top: 0; }
693
+ .example pre,
694
+ .example .pseudocode {
695
+ background: none; }
696
+
697
+ /*
698
+ 3.9 Tables
699
+ */
700
+ table {
701
+ width: 100%;
702
+ font-weight: 300;
703
+ margin: 1em 0 2em 0;
704
+ margin-left: auto;
705
+ margin-right: auto;
706
+ padding-right: 2em; }
707
+ table, table th, table td {
708
+ border: 1px solid black;
709
+ font-size: 0.95em; }
710
+ table th, table td {
711
+ padding: 1em; }
712
+ table td.header {
713
+ font-weigth: 400; }
714
+
715
+ p.TableTitle {
716
+ text-align: center;
717
+ margin-top: 2.5em;
718
+ font-weight: 400; }
719
+
720
+ /*
721
+ 3.10 Footnotes
722
+ */
723
+ a.footnote-number {
724
+ vertical-align: super;
725
+ font-size: 0.8em; }
726
+
727
+ .footnote {
728
+ font-size: {{footnotefontsize}}; }
729
+
730
+ /*
731
+ 3.11 Blockquotes
732
+ */
733
+ .Quote {
734
+ background-color: #f2f2f2;
735
+ font-style: italic;
736
+ width: 80%;
737
+ padding: 1.5em;
738
+ margin-top: 2em;
739
+ margin-left: auto;
740
+ margin-right: auto; }
741
+
742
+ /*
743
+ 3.12 Formulas
744
+ */
745
+ .formula {
746
+ background-color: #f7f7f7;
747
+ padding: 1.5em;
748
+ margin-top: 2em;
749
+ text-align: center; }
750
+
751
+ /*
752
+ 3.13 Contact Info
753
+ */
754
+ .contact-info {
755
+ padding: 2em;
756
+ margin-top: 5em;
757
+ width: 250px;
758
+ text-align: left;
759
+ border: #C70039 solid 2px;
760
+ color: #C70039 !important;
761
+ border-radius: 25px; }
762
+
763
+ .contact-info a,
764
+ .contact-info a:hover {
765
+ color: #C70039; }
766
+
767
+ .contact-info p, .contact-info a {
768
+ font-family: {{monospacefont}};
769
+ font-weight: 400; }
770
+
771
+ .contact-info .name {
772
+ font-weight: 700;
773
+ font-size: 1.2em;
774
+ margin-bottom: 0; }
775
+
776
+ .contact-info .address {
777
+ font-size: 1em;
778
+ line-height: 1.3em;
779
+ margin-top: 0; }
780
+
781
+ /*
782
+ Keywords
783
+ */
784
+ span.keyword {
785
+ font-weight: 600; }
786
+
787
+ /*
788
+ Paragraphs
789
+ */
790
+ p {
791
+ margin-top: 1em;
792
+ margin-bottom: 1em; }
793
+
794
+ h2 p {
795
+ display: inline; }
796
+
797
+ /*
798
+ 4.0 Page header
799
+ */
800
+ /*
801
+ 4.1 Top Logo
802
+ */
803
+ .icon-svg {
804
+ width: 100%;
805
+ color: #5ecf86; }
806
+
807
+ .wrapper-top {
808
+ background: #C70039;
809
+ color: #ffffff;
810
+ padding: 2em 0;
811
+ width: 100%; }
812
+
813
+ .wrapper-top-bottom {
814
+ width: 0;
815
+ height: 0;
816
+ border-top: 100px solid #C70039;
817
+ position: absolute; }
818
+
819
+ .doc-number {
820
+ font-size: 0.5em;
821
+ font-family: {{bodyfont}}; }
822
+
823
+ .coverpage-title {
824
+ padding-bottom: 0.5em;
825
+ font-family: {{headerfont}};
826
+ font-size: 1.2em;
827
+ line-height: 1.5em;
828
+ font-weight: 100;
829
+ padding-left: 1em;
830
+ padding-right: 1em;
831
+ text-transform: uppercase; }
832
+
833
+ .WordSection11 {
834
+ padding: 0 2em 0 3em; }
835
+
836
+ .info-section {
837
+ padding: 0 2em 0 5em; }
838
+
839
+ .prefatory-section {
840
+ padding: 0 3em 0 6em; }
841
+
842
+ .zzSTDTitle1, .MsoCommentText {
843
+ display: none; }
844
+
845
+ .coverpage {
846
+ text-align: center;
847
+ padding-left: 1.5em; }
848
+
849
+ .coverpage-logo span, .coverpage-tc-name span {
850
+ font-family: {{bodyfont}};
851
+ text-transform: none;
852
+ font-weight: 300; }
853
+
854
+ .coverpage-tc-name {
855
+ font-size: 1.2em;
856
+ line-height: 1.2em;
857
+ margin: 0.25em 0; }
858
+
859
+ /*
860
+ 4.2 Document Identity
861
+ */
862
+ .coverpage-doc-identity {
863
+ font-size: 2em;
864
+ line-height: 2em; }
865
+
866
+ .coverpage-title .title-second {
867
+ font-size: 0.8em; }
868
+
869
+ .coverpage-title .title-third {
870
+ font-size: 0.6em; }
871
+
872
+ .coverpage-stage-block {
873
+ font-family: {{bodyfont}};
874
+ font-weight: 600;
875
+ font-size: 1.25em;
876
+ margin: 2em 0em 2em 0em;
877
+ text-transform: uppercase; }
878
+
879
+ /*
880
+ 4.3 Draft Warning
881
+ */
882
+ .coverpage-warning {
883
+ border: #f36f36 solid 2px;
884
+ color: #f36f36 !important;
885
+ margin: 1em 2em;
886
+ color: #485094;
887
+ padding: 2em 1em 1em 1em;
888
+ border-radius: 25px; }
889
+
890
+ .coverpage-warning .title {
891
+ font-family: {{headerfont}};
892
+ font-weight: 300;
893
+ text-transform: uppercase;
894
+ font-size: 1.2em; }
895
+
896
+ /*
897
+ 4.4 Copyright
898
+ */
899
+ .copyright {
900
+ padding: 1em;
901
+ font-size: 0.9em;
902
+ text-align: left; }
903
+
904
+ /* .copyright .name, .copyright .address {color: #485094;} */
905
+ /*
906
+ 5.0 Other styles
907
+ */
908
+ /*
909
+ To top button
910
+ */
911
+ #myBtn {
912
+ font-family: {{monospacefont}};
913
+ font-variant-ligatures: none;
914
+ display: none;
915
+ position: fixed;
916
+ bottom: 20px;
917
+ right: 30px;
918
+ z-index: 99;
919
+ font-size: 12px;
920
+ border: none;
921
+ outline: none;
922
+ background-color: #1f8ca0;
923
+ opacity: 0.15;
924
+ color: white;
925
+ cursor: pointer;
926
+ padding: 10px 15px 10px 15px;
927
+ border-radius: 4px;
928
+ text-transform: uppercase; }
929
+ #myBtn:hover {
930
+ opacity: 1; }
931
+ @media print {
932
+ #myBtn {
933
+ display: none; } }
934
+ #myBtn a.anchorjs-link:hover {
935
+ background: none;
936
+ color: #485094;
937
+ box-shadow: none; }
938
+
939
+ @page {
940
+ margin: 2cm 1cm; }
941
+
942
+ @media print {
943
+ .document-info, nav, .copyright {
944
+ page-break-before: always; }
945
+ h1, h2, h3, h4 {
946
+ page-break-after: avoid;
947
+ margin-top: 1.2em; }
948
+ .note, .figure, pre, .pseudocode, table {
949
+ page-break-inside: avoid; }
950
+ .info-section {
951
+ display: none; }
952
+ .coverpage {
953
+ height: 23cm; }
954
+ .wrapper-top {
955
+ top: 0;
956
+ padding-top: 4cm;
957
+ padding-bottom: 4cm; }
958
+ .wrapper-top-bottom {
959
+ margin-top: -5px; }
960
+ #toggle, .document-stage-band,
961
+ .document-type-band, button#myBtn {
962
+ display: none; }
963
+ .container {
964
+ padding-left: 0; }
965
+ h1.content {
966
+ margin-top: 2em;
967
+ line-height: 2.5em; }
968
+ h1 {
969
+ font-size: 1.5em;
970
+ line-height: 1.5; }
971
+ h2 {
972
+ font-size: 1.2em; }
973
+ h3 {
974
+ font-size: 1em; }
975
+ .Note {
976
+ background-color: #fff495;
977
+ color: #47430c;
978
+ padding: 5px;
979
+ margin: 2em 0 1em 0; }
980
+ .Note p {
981
+ padding: 0 5px 0 5px; }
982
+ .wrapper-top-bottom {
983
+ display: none; } }