metanorma-bipm 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d8436644152700b4a7927bd706cefb128e019ea7592721852bb227df1f3e304
4
- data.tar.gz: 72bb82f202b91f9f31ea74718b972b315c1f69d02f66b03f7d52424d6955e274
3
+ metadata.gz: 7f7ed7028b4a5bd6a311aff675bd47272c2170dad7adfcf59457ca3f4a55d218
4
+ data.tar.gz: 96e9451da240b36fe420324838d69a0d5fde69cb956d74977f83b7ca9c736cae
5
5
  SHA512:
6
- metadata.gz: 2e3c3175ef01047372bbcd0f22807d5ac04cb61a87d51c4fc05faf12af40a066c3e8d1ee5a34d31b77f7c66cc2f82f556b214bc365c3e45f49f187726d269332
7
- data.tar.gz: 032ceebe7c4688f8c617998b8b3aa2a047be8fb0c8b20914a3d4927d6cfafaa6a26bc1c9cb6ec191233b978721cc3152b2312d8a17daaf29ebc3c2ddb2d75060
6
+ metadata.gz: 98b7383018c3822867381823ed9d19bc4cd02e5db2fbf97862014bde19079e13f28fc1e0342b3d41986b3a0d249104746a14f475db05fe6a273bb8c860bc8df6
7
+ data.tar.gz: 531be848c577965373bdbab1408304b06fc292998b89e2fdc3f81948ba93799a4a9f0a4b19897974ea6fb38518738ab6ac9cb33196dee90fd04305ef5825d16b
@@ -4,7 +4,8 @@ name: rake
4
4
 
5
5
  on:
6
6
  push:
7
- branches: [ master ]
7
+ branches: [ master, main ]
8
+ tags: [ v* ]
8
9
  pull_request:
9
10
 
10
11
  jobs:
@@ -31,14 +32,32 @@ jobs:
31
32
  steps:
32
33
  - uses: actions/checkout@master
33
34
 
34
- - name: Use Ruby
35
- uses: ruby/setup-ruby@v1
35
+ - uses: ruby/setup-ruby@v1
36
36
  with:
37
37
  ruby-version: ${{ matrix.ruby }}
38
- bundler-cache: true
39
38
 
40
- - name: Update gems
41
- run: bundle install --jobs 4 --retry 3
39
+ - uses: actions/cache@v1
40
+ with:
41
+ path: vendor/bundle
42
+ key: bundle-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}
43
+ restore-keys: bundle-${{ matrix.os }}-${{ matrix.ruby }}
44
+
45
+ - run: bundle config set path 'vendor/bundle'
46
+
47
+ - run: bundle install --jobs 4 --retry 3
42
48
 
43
- - name: Run specs
44
- run: bundle exec rake
49
+ - run: bundle exec rake
50
+
51
+ notify:
52
+ name: Trigger notify workflow
53
+ needs: rake
54
+ runs-on: ubuntu-latest
55
+ steps:
56
+ - name: Trigger notify workflow
57
+ uses: Sibz/github-status-action@v1
58
+ with:
59
+ authToken: ${{ secrets.GITHUB_TOKEN }}
60
+ context: 'tests-passed-successfully'
61
+ description: 'Tests passed successfully'
62
+ state: 'success'
63
+ sha: ${{ github.event.pull_request.head.sha || github.sha }}
@@ -1,17 +1,14 @@
1
1
  = Metanorma for BIPM: Metanorma processor for Bureau International de Poids et Mesures
2
2
 
3
- image:https://img.shields.io/gem/v/metanorma-bimp.sbimp["Gem Version", link="https://rubygems.org/gems/metanorma-bimp"]
4
- image:https://github.com/metanorma/metanorma-bimp/workflows/macos/badge.sbimp["Build Status (macOS)", link="https://github.com/metanorma/metanorma-bimp/actions?workflow=macos"]
5
- image:https://github.com/metanorma/metanorma-bimp/workflows/ubuntu/badge.sbimp["Build Status (ubuntu)", link="https://github.com/metanorma/metanorma-bimp/actions?workflow=ubuntu"]
6
- image:https://github.com/metanorma/metanorma-bimp/workflows/windows/badge.sbimp["Build Status (Windows)", link="https://github.com/metanorma/metanorma-bimp/actions?workflow=windows"]
7
- image:https://codeclimate.com/github/metanorma/metanorma-bimp/badges/gpa.sbimp["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-bimp"]
8
- image:https://img.shields.io/github/issues-pr-raw/metanorma/metanorma-bimp.sbimp["Pull Requests", link="https://github.com/metanorma/metanorma-bimp/pulls"]
9
- image:https://img.shields.io/github/commits-since/metanorma/metanorma-bimp/latest.sbimp["Commits since latest",link="https://github.com/metanorma/metanorma-bimp/releases"]
3
+ image:https://img.shields.io/gem/v/metanorma-bipm.svg["Gem Version", link="https://rubygems.org/gems/metanorma-bipm"]
4
+ image:https://github.com/metanorma/metanorma-bipm/workflows/rake/badge.svg["Build Status", link="https://github.com/metanorma/metanorma-bipm/actions?workflow=rake"]
5
+ image:https://codeclimate.com/github/metanorma/metanorma-bipm/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-bipm"]
6
+ image:https://img.shields.io/github/issues-pr-raw/metanorma/metanorma-bipm.svg["Pull Requests", link="https://github.com/metanorma/metanorma-bipm/pulls"]
7
+ image:https://img.shields.io/github/commits-since/metanorma/metanorma-bipm/latest.svg["Commits since latest",link="https://github.com/metanorma/metanorma-bipm/releases"]
10
8
 
11
9
  == Functionality
12
10
 
13
- This gem processes http://asciidoctor.org/[Asciidoctor] documents following
14
- a template for generating BIPM standards.
11
+ This gem processes https://www.metanorma.com[Metanorma documents] following a template for generating BIPM standards.
15
12
 
16
13
  == Usage
17
14
 
@@ -42,138 +39,10 @@ scripts such as this one. You need only run the following in a Terminal console:
42
39
  [source,console]
43
40
  ----
44
41
  $ bash <(curl -s https://raw.githubusercontent.com/riboseinc/metanorma-macos-setup/master/metanorma-setup)
45
- $ gem install metanorma-vg
42
+ $ gem install metanorma-bipm
46
43
  ----
47
44
 
48
45
 
49
- == Document Attributes
50
-
51
- The gem relies on Asciidoctor document attributes to provide necessary
52
- metadata about the document. These include:
53
-
54
- `:edition:`:: The document edition
55
-
56
- `:revdate:`:: The date the document was last updated
57
-
58
- `:title-en:`:: The title of the document in English (mandatory)
59
- `:title-fr:`:: The title of the document in French (mandatory)
60
- `:title-cover-en:`:: The title of the front cover of the document in English (where different from the title proper)
61
- `:title-cover-fr:`:: The title of the front cover of the document in French (where different from the title proper)
62
- `:title-appendix-en:`:: The title of the appendix in English, if this document is an appendix published separately; `title-en` becomes the title of the main document, as presented within the standalone appendix.
63
- `:title-appendix-fr:`:: The title of the appendix in English, if this document is an appendix published separately; `title-en` becomes the title of the main document, as presented within the standalone appendix.
64
-
65
- `:appendix-id:`:: The number of the appendix, if this document is an appendix published separately
66
-
67
- `:si-aspect:`:: The domain of SI covered by the document; used to select logo in PDF cover page. The logo nominates one primary SI base units, and defining consonants for that unit and possibly others as well. The permitted values are:
68
- +
69
- --
70
- * A_e_deltanu (ampere; time)
71
- * A_e (ampere)
72
- * cd_Kcd_h_deltanu (candela; mass, time)
73
- * cd_Kcd (candela)
74
- * full (all units)
75
- * K_k_deltanu (kelvin; mass, time)
76
- * K_k (kelvin)
77
- * kg_h_c_deltanu (kilogram; length, time)
78
- * kg_h (kilogram)
79
- * m_c_deltanu (metre; time)
80
- * m_c (metre)
81
- * mol_NA (mole)
82
- * s_deltanu (second)
83
- --
84
-
85
- `:copyright-year:`:: The year which will be claimed as when the copyright for
86
- the document was issued
87
-
88
- `:supersedes:`:: One or more BIPM document that this BIPM document standard supersedes; the superseded
89
- document may still remain in effect. Identified with document identifier. Comma delimited.
90
-
91
- `:superseded-by:`:: One or more BIPM document that this BIPM document standard is superseded by; this
92
- document may still remain in effect. Identified with document identifier. Comma delimited.
93
-
94
- `:supersedes-date_{i}:`:: Date of the document draft or version which this document supersedes.
95
- Assumes superseded document does not have distinct identifier.
96
- `:supersedes-draft_{i}:`:: Draft of the document which this document supersedes.
97
- Assumes superseded document does not have distinct identifier.
98
- `:supersedes-edition{i}:``:: Version of the document which this document supersedes.
99
- Assumes superseded document does not have distinct identifier.
100
-
101
- `:doctype:`:: The document type (mandatory). The permitted types are:
102
- +
103
- --
104
- * brochure (default)
105
- * mise-en-pratique
106
- * rapport
107
- * monographie
108
- * guide
109
- * meeting-report
110
- * technical-report
111
- * working-party-note
112
- * strategy
113
- * cipm-mra
114
- * resolution
115
- --
116
-
117
- `:status:``:: The document status. The permitted types are: `draft-proposal`,
118
- `draft-development`, `in-force`, `retired`.
119
-
120
- `:committee-en:`:: The name of the relevant committee in English (mandatory)
121
- `:committee-fr:`:: The name of the relevant committee in French (mandatory)
122
- `:committee-acronym:`:: The acronym of the relevant committee (mandatory)
123
- +
124
- --
125
- * CGPM: General Conference on Weights and Measures / Conférence générale des poids et mesures
126
- * CIPM: International Committee for Weights and Measures / Comité international des poids et mesures
127
- * BIPM: International Bureau of Weights and Measures / Bureau International des Poids et Mesures
128
- * CCAUV: Consultative Committee for Acoustics, Ultrasound and Vibration / Comité consultatif de l'acoustique, des ultrasons et des vibrations
129
- * CCEM: Consultative Committee for Electricity and Magnetism / Comité consultatif d'électricité et magnétisme
130
- * CCL: Consultative Committee for Length / Comité consultatif des longueurs
131
- * CCM: Consultative Committee for Mass and Related Quantities / Comité consultatif pour la masse et les grandeurs apparentées
132
- * CCPR: Consultative Committee for Photometry and Radiometry / Comité consultatif de photométrie et radiométrie
133
- * CCQM: Consultative Committee for Amount of Substance: Metrology in Chemistry and Biology / Comité consultatif pour la quantité de matière : métrologie en chimie et biologie
134
- * CCRI: Consultative Committee for Ionizing Radiation / Comité consultatif des rayonnements ionisants
135
- * CCT: Consultative Committee for Thermometry / Comité consultatif de thermométrie
136
- * CCTF: Consultative Committee for Time and Frequency / Comité consultatif du temps et des fréquences
137
- * CCU: Consultative Committee for Units / Comité consultatif des unités
138
- * CCL-CCTF: Frequency Standards Working Group
139
- * JCGM: Joint Committee for Guides in Metrology / Comité commun pour les guides en métrologie
140
- * JCRB: Joint Committee of the Regional Metrology Organizations and the BIPM / Comité mixte des organisations régionales de métrologie et du BIPM
141
- * JCTLM: Joint Committee for Traceability in Laboratory Medicine / Comité commun pour la traçabilité en médecine de laboratoire
142
- * INetQI: International Network on Quality Infrastructure
143
- --
144
- `:workgroup:`:: The name of the relevant workgroup (mandatory)
145
- `:workgroup-acronym:`:: The acronym of the relevant workgroup (mandatory)
146
-
147
- `:language:` :: The language of the document (`en` or `fr`) (mandatory)
148
-
149
- `:comment-period-from:`:: Start of the period during which comments are allowed on the document draft
150
- `:comment-period-to:`:: End of the period during which comments are allowed on the document draft (optional)
151
-
152
- `:obsoleted-date:`:: The date a document was superseded
153
- `:implemented-date:`:: The date a document became effective
154
-
155
- `:meeting-note:`:: Note on when and where a guide was adopted.
156
-
157
- `:role_{i}:`:: If provided and is other than "author" or "editor" (e.g. "WG-N co-chair"),
158
- is treated as a subclass of "editor".
159
-
160
- `:supersedes-date_{i}:`:: Date of the document draft or version which this document supersedes.
161
- `:supersedes-draft_{i}:`:: Draft of the document which this document supersedes.
162
- `:supersedes-version_{i}:``:: Version of the document which this document supersedes.
163
-
164
-
165
- The attribute `:draft:`, if present, includes review notes in the XML output;
166
- these are otherwise suppressed.
167
-
168
- == Markup
169
-
170
- Cross-references formatted as `<<{{anchor}},pagenumber%>>` are rendered in PDF as just the page number;
171
- they are used for tables of content. In HTML output, they are treated as normal cross-references.
172
-
173
- Clauses and annexes may be marked as `[%unnumbered]`, in which case they do not receive section numbering, and are cross-referenced by their title.
174
-
175
- Unlike the Metanorma default, ordered lists do not have a fixed sequence of numbering styles: the type set for each ordered list (including nested lists) is respected. The default numbering style for ordered lists is always arabic.
176
-
177
46
  == Data Models
178
47
 
179
48
  The document model for BIPM is given in https://github.com/metanorma/metanorma-model-bipm[metanorma-model-bipm].
@@ -13,8 +13,7 @@
13
13
  <feedback-statement>
14
14
  <p>BIPM<br/>
15
15
  Pavillon de Breteuil<br/>
16
- F-92312 Sèvres<br/>
17
- Cedex<br/>
16
+ F-92312 Sèvres Cedex<br/>
18
17
  FRANCE</p>
19
18
  </feedback-statement>
20
19
  </boilerplate>
@@ -7,14 +7,13 @@
7
7
  <license-statement>
8
8
  <clause>
9
9
  <title>Note concernant les droits d’auteur</title>
10
- <p>Ce document est distribué selon les termes et conditions de la licence Creative Commons Attribution 4.0 International (<link target="http://creativecommons.org/licenses/by/4.0/"/>), qui permet l’utilisation sans restriction, la distribution et la reproduction sur quelque support que soit, sous réserve de mentionner dûment l’auteur ou les auteurs originaux ainsi que la source de l’œuvre, d’intégrer un lien vers la licence Creative Commons et d’indiquer si des modifications ont été effectuées.</p>
10
+ <p>Ce document est distribué selon les termes et conditions de la licence Creative Commons Attribution 4.0 International (<link target="http://creativecommons.org/licenses/by/4.0/"/>), qui permet l’utilisation sans restriction, la distribution et la reproduction sur quelque support que soit, sous réserve de mentionner dûment l’auteur ou les auteurs originaux ainsi que la source de l’œuvre, d’intégrer un lien vers la licence Creative Commons et d’indiquer si des modifications ont été effectuées.</p>
11
11
  </clause>
12
12
  </license-statement>
13
13
  <feedback-statement>
14
14
  <p>BIPM<br/>
15
15
  Pavillon de Breteuil<br/>
16
- F-92312 Sèvres<br/>
17
- Cedex<br/>
16
+ F-92312 Sèvres Cedex<br/>
18
17
  FRANCE</p>
19
18
  </feedback-statement>
20
19
  </boilerplate>
@@ -30,8 +30,10 @@ module Asciidoctor
30
30
 
31
31
  def metadata_committee2(node, a)
32
32
  i = 2
33
- while node.attr("committee-en_#{i}") || node.attr("committee-fr_#{i}") do
34
- a.committee **attr_code(acronym: node.attr("committee-acronym_#{i}")) do |c|
33
+ while node.attr("committee-en_#{i}") ||
34
+ node.attr("committee-fr_#{i}") do
35
+ a.committee **attr_code(acronym:
36
+ node.attr("committee-acronym_#{i}")) do |c|
35
37
  e = node.attr("committee-en_#{i}") and
36
38
  c.variant e, language: "en", script: "Latn"
37
39
  e = node.attr("committee-fr_#{i}") and
@@ -99,6 +101,8 @@ module Asciidoctor
99
101
  end
100
102
  typed_title(node, xml, lang, "cover")
101
103
  typed_title(node, xml, lang, "appendix")
104
+ typed_title(node, xml, lang, "part")
105
+ typed_title(node, xml, lang, "subpart")
102
106
  end
103
107
  end
104
108
 
@@ -137,7 +141,30 @@ module Asciidoctor
137
141
  end
138
142
 
139
143
  def ol_attrs(node)
140
- super.merge(start: node.attr("start"))
144
+ super.merge(attr_code(start: node.attr("start")))
145
+ end
146
+
147
+ def section_names_terms_cleanup(x)
148
+ end
149
+
150
+ def committee_validate(xml)
151
+ committees = Array(configuration&.committees) || return
152
+ committees.empty? and return
153
+ xml.xpath("//bibdata/ext/editorialgroup/committee/variant").each do |c|
154
+ committees.include? c.text or
155
+ @log.add("Document Attributes", nil,
156
+ "#{c.text} is not a recognised committee")
157
+ end
158
+ xml.xpath("//bibdata/ext/editorialgroup/committee/@acronym").each do |c|
159
+ committees.include? c.text or
160
+ @log.add("Document Attributes", nil,
161
+ "#{c.text} is not a recognised committee")
162
+ end
163
+ end
164
+
165
+ def mathml_mi_italics
166
+ { uppergreek: false, upperroman: false,
167
+ lowergreek: false, lowerroman: true }
141
168
  end
142
169
 
143
170
  def outputs(node, ret)
@@ -24,6 +24,14 @@
24
24
  <start>
25
25
  <ref name="standard-document"/>
26
26
  </start>
27
+ <define name="doctype">
28
+ <element name="doctype">
29
+ <optional>
30
+ <attribute name="abbreviation"/>
31
+ </optional>
32
+ <ref name="DocumentType"/>
33
+ </element>
34
+ </define>
27
35
  <define name="hyperlink">
28
36
  <element name="link">
29
37
  <attribute name="target">
@@ -141,6 +149,11 @@
141
149
  <data type="boolean"/>
142
150
  </attribute>
143
151
  </optional>
152
+ <optional>
153
+ <attribute name="key">
154
+ <data type="boolean"/>
155
+ </attribute>
156
+ </optional>
144
157
  <oneOrMore>
145
158
  <ref name="dt"/>
146
159
  <ref name="dd"/>
@@ -7,9 +7,16 @@ module IsoDoc
7
7
  Metanorma::BIPM.configuration
8
8
  end
9
9
 
10
- def ol_attrs(node)
11
- super.merge(attr_code(type: ol_style((node["type"] || "arabic").to_sym),
12
- start: node["start"]))
10
+ def middle(isoxml, out)
11
+ middle_title(out)
12
+ middle_admonitions(isoxml, out)
13
+ clause isoxml, out
14
+ annex isoxml, out
15
+ bibliography isoxml, out
16
+ end
17
+
18
+ def middle_clause
19
+ "//sections/*"
13
20
  end
14
21
  end
15
22
  end
@@ -22,7 +22,7 @@
22
22
 
23
23
  <xsl:variable name="copyrightYear" select="//bipm:bipm-standard/bipm:bibdata/bipm:copyright/bipm:from"/>
24
24
 
25
- <xsl:variable name="doc_first_language" select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:language"/>
25
+ <xsl:variable name="doc_first_language" select="(//bipm:bipm-standard)[1]/bipm:bibdata/bipm:language[@current = 'true']"/>
26
26
 
27
27
  <xsl:variable name="lang">
28
28
  <xsl:call-template name="getLang"/>
@@ -38,7 +38,7 @@
38
38
  <xsl:choose>
39
39
  <xsl:when test="$doc_split_by_language = ''"><!-- all documents -->
40
40
  <xsl:for-each select="//bipm:bipm-standard">
41
- <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language']"/>
41
+ <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
42
42
  <xsl:variable name="num"><xsl:number level="any" count="bipm:bipm-standard"/></xsl:variable>
43
43
  <xsl:variable name="current_document">
44
44
  <xsl:apply-templates select="." mode="change_id">
@@ -56,8 +56,8 @@
56
56
  </xsl:for-each>
57
57
  </xsl:when>
58
58
  <xsl:otherwise>
59
- <xsl:for-each select="(//bipm:bipm-standard)[*[local-name()='bibdata']/*[local-name()='language'] = $doc_split_by_language]">
60
- <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language']"/>
59
+ <xsl:for-each select="(//bipm:bipm-standard)[*[local-name()='bibdata']/*[local-name()='language'][@current = 'true'] = $doc_split_by_language]">
60
+ <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
61
61
  <xsl:variable name="num"><xsl:number level="any" count="bipm:bipm-standard"/></xsl:variable>
62
62
  <xsl:variable name="current_document">
63
63
  <xsl:apply-templates select="." mode="change_id">
@@ -89,9 +89,10 @@
89
89
 
90
90
  </xsl:variable>
91
91
 
92
- <!-- <xsl:variable name="independentAppendix" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix)"/> -->
93
- <xsl:variable name="independentAppendix" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'appendix'])"/>
92
+ <xsl:variable name="independentAppendix" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix)"/>
93
+ <!-- <xsl:variable name="independentAppendix" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'appendix'])"/> -->
94
94
 
95
+ <xsl:variable name="doctype" select="//bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:doctype"/>
95
96
 
96
97
  <xsl:template name="generateContents">
97
98
  <contents>
@@ -136,14 +137,14 @@
136
137
  <fo:simple-page-master master-name="document-odd" page-width="{$pageWidth}" page-height="{$pageHeight}">
137
138
  <fo:region-body margin-top="25.4mm" margin-bottom="22mm" margin-left="31.7mm" margin-right="40mm"/>
138
139
  <fo:region-before region-name="header-odd" extent="25.4mm"/>
139
- <fo:region-after region-name="footer" extent="22mm"/>
140
+ <fo:region-after region-name="footer" extent="22mm"/> <!-- debug: background-color="green" -->
140
141
  <fo:region-start region-name="left-region" extent="17mm"/>
141
142
  <fo:region-end region-name="right-region" extent="26.5mm"/>
142
143
  </fo:simple-page-master>
143
144
  <fo:simple-page-master master-name="document-even" page-width="{$pageWidth}" page-height="{$pageHeight}">
144
145
  <fo:region-body margin-top="25.4mm" margin-bottom="22mm" margin-left="31.7mm" margin-right="40mm"/>
145
146
  <fo:region-before region-name="header-even" extent="25.4mm"/>
146
- <fo:region-after region-name="footer" extent="22mm"/>
147
+ <fo:region-after region-name="footer" extent="22mm"/> <!-- debug: background-color="green" -->
147
148
  <fo:region-start region-name="left-region" extent="17mm"/>
148
149
  <fo:region-end region-name="right-region" extent="26.5mm"/>
149
150
  </fo:simple-page-master>
@@ -199,14 +200,21 @@
199
200
  <xsl:copy-of select="$contents"/>
200
201
  </contents> -->
201
202
 
202
- <xsl:if test="$independentAppendix = ''">
203
- <xsl:call-template name="insertCoverPage"/>
204
- <xsl:call-template name="insertInnerCoverPage"/>
205
- </xsl:if>
203
+ <xsl:choose>
206
204
 
207
- <xsl:if test="$independentAppendix != ''">
208
- <xsl:call-template name="insertCoverPageAppendix"/>
209
- </xsl:if>
205
+ <xsl:when test="$doctype = 'guide'">
206
+ <xsl:call-template name="insertCoverPageAppendix"/>
207
+ </xsl:when>
208
+
209
+ <xsl:when test="$independentAppendix = ''">
210
+ <xsl:call-template name="insertCoverPage"/>
211
+ <xsl:call-template name="insertInnerCoverPage"/>
212
+ </xsl:when>
213
+
214
+ <xsl:when test="$independentAppendix != ''">
215
+ <xsl:call-template name="insertCoverPageAppendix"/>
216
+ </xsl:when>
217
+ </xsl:choose>
210
218
 
211
219
 
212
220
  <xsl:choose>
@@ -216,7 +224,7 @@
216
224
  <xsl:choose>
217
225
  <xsl:when test="$doc_split_by_language = ''"><!-- all documents -->
218
226
  <xsl:for-each select="//bipm:bipm-standard">
219
- <xsl:variable name="lang" select="*[local-name()='bibdata']//*[local-name()='language']"/>
227
+ <xsl:variable name="lang" select="*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
220
228
  <xsl:variable name="num"><xsl:number level="any" count="bipm:bipm-standard"/></xsl:variable>
221
229
  <!-- change id to prevent identical id in different documents in one container -->
222
230
  <xsl:variable name="current_document">
@@ -238,8 +246,8 @@
238
246
  </xsl:for-each>
239
247
  </xsl:when>
240
248
  <xsl:otherwise>
241
- <xsl:for-each select="(//bipm:bipm-standard)[*[local-name()='bibdata']/*[local-name()='language'] = $doc_split_by_language]">
242
- <xsl:variable name="lang" select="*[local-name()='bibdata']//*[local-name()='language']"/>
249
+ <xsl:for-each select="(//bipm:bipm-standard)[*[local-name()='bibdata']/*[local-name()='language'][@current = 'true'] = $doc_split_by_language]">
250
+ <xsl:variable name="lang" select="*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
243
251
  <xsl:variable name="num"><xsl:number level="any" count="bipm:bipm-standard"/></xsl:variable>
244
252
  <!-- change id to prevent identical id in different documents in one container -->
245
253
  <xsl:variable name="current_document">
@@ -280,7 +288,10 @@
280
288
  </fo:root>
281
289
  </xsl:template>
282
290
 
283
- <!-- flat xml for fit notes at page sides -->
291
+
292
+ <!-- ================================= -->
293
+ <!-- Flattening xml for fit notes at page sides (margins) -->
294
+ <!-- ================================= -->
284
295
  <xsl:template match="@*|node()" mode="flatxml">
285
296
  <xsl:copy>
286
297
  <xsl:if test="ancestor::bipm:quote">
@@ -290,12 +301,84 @@
290
301
  </xsl:copy>
291
302
  </xsl:template>
292
303
 
293
- <!-- flat clauses from 2nd level -->
304
+ <!-- enclosing starting elements annex/... in clause -->
305
+ <xsl:template match="bipm:annex" mode="flatxml">
306
+ <xsl:copy>
307
+ <xsl:apply-templates select="@*" mode="flatxml"/>
308
+
309
+ <xsl:variable name="pos_first_clause_" select="count(bipm:clause[1]/preceding-sibling::*)"/>
310
+ <!-- pos_first_clause=<xsl:value-of select="$pos_first_clause"/> -->
311
+
312
+ <xsl:variable name="pos_first_clause">
313
+ <xsl:choose>
314
+ <xsl:when test="$pos_first_clause_ = 0">
315
+ <xsl:value-of select="count(*)"/>
316
+ </xsl:when>
317
+ <xsl:otherwise>
318
+ <xsl:value-of select="$pos_first_clause_"/>
319
+ </xsl:otherwise>
320
+ </xsl:choose>
321
+ </xsl:variable>
322
+ <xsl:choose>
323
+
324
+ <xsl:when test="$pos_first_clause &gt; 0">
325
+ <xsl:element name="clause" namespace="https://www.metanorma.org/ns/bipm">
326
+ <xsl:attribute name="id"><xsl:value-of select="concat(@id,'_clause')"/></xsl:attribute>
327
+ <xsl:for-each select="*[position() &gt; 0 and position() &lt;= $pos_first_clause]">
328
+ <xsl:apply-templates select="." mode="flatxml"/>
329
+ </xsl:for-each>
330
+ </xsl:element>
331
+ <xsl:for-each select="*[position() &gt; $pos_first_clause]">
332
+ <xsl:apply-templates select="." mode="flatxml"/>
333
+ </xsl:for-each>
334
+ </xsl:when>
335
+ <xsl:otherwise>
336
+ <xsl:apply-templates mode="flatxml"/>
337
+ </xsl:otherwise>
338
+ </xsl:choose>
339
+
340
+ </xsl:copy>
341
+ </xsl:template>
342
+
343
+ <xsl:template match="bipm:annex/bipm:title" mode="flatxml">
344
+ <xsl:copy>
345
+ <xsl:apply-templates select="@*" mode="flatxml"/>
346
+ <xsl:attribute name="depth">1</xsl:attribute>
347
+ <xsl:apply-templates mode="flatxml"/>
348
+ </xsl:copy>
349
+ </xsl:template>
350
+
351
+
352
+ <!-- flattening clauses from 2nd level -->
294
353
  <!-- <xsl:template match="bipm:clause[not(parent::bipm:sections) and not(parent::bipm:annex) and not(parent::bipm:abstract) and not(ancestor::bipm:boilerplate)]" mode="flatxml"> -->
295
354
  <xsl:template match="bipm:clause[not(parent::bipm:sections) and not(parent::bipm:annex) and not(parent::bipm:preface) and not(ancestor::bipm:boilerplate)]" mode="flatxml">
296
355
  <xsl:copy>
297
356
  <xsl:apply-templates select="@*" mode="flatxml"/>
298
- </xsl:copy>
357
+
358
+ <!-- add note_side inside empty clause to show near the title -->
359
+ <!-- <xsl:variable name="curr_id" select="@id"/>
360
+ <xsl:for-each select=".//bipm:quote[ancestor::bipm:clause[1][@id = $curr_id]]//bipm:fn">
361
+ <xsl:element name="note_side" namespace="https://www.metanorma.org/ns/bipm">
362
+
363
+ <xsl:attribute name="id">
364
+ <xsl:call-template name="fn_reference_to_xref_target"/>
365
+ </xsl:attribute>
366
+
367
+ <xsl:variable name="num" select="position()"/>
368
+
369
+ <xsl:variable name="asterisks">
370
+ <xsl:call-template name="repeat">
371
+ <xsl:with-param name="char" select="'*'"/>
372
+ <xsl:with-param name="count" select="$num + 1"/>
373
+ </xsl:call-template>
374
+ </xsl:variable>
375
+ <xsl:value-of select="$asterisks"/>
376
+
377
+ <xsl:text> </xsl:text>
378
+ <xsl:apply-templates mode="flatxml"/>
379
+ </xsl:element>
380
+ </xsl:for-each> -->
381
+ </xsl:copy>
299
382
  <xsl:apply-templates mode="flatxml"/>
300
383
  </xsl:template>
301
384
 
@@ -307,6 +390,12 @@
307
390
  <xsl:for-each select="following-sibling::*[local-name() = 'note']">
308
391
  <xsl:call-template name="change_note_kind"/>
309
392
  </xsl:for-each>
393
+ <xsl:if test="@depth = 3 and local-name() = 'title' and ../bipm:clause/bipm:title/@depth = 4 and count(following-sibling::*[1][local-name() = 'note']) &gt; 0"> <!-- it means that current node is title level is 3 with notes, next level is 4 -->
394
+ <!-- <put_note_side_level4_here/> -->
395
+ <xsl:for-each select="../bipm:clause//bipm:fn[ancestor::bipm:quote or not(ancestor::bipm:table)]"> <!-- move here footnotes from clause level 4 -->
396
+ <xsl:call-template name="fn_to_note_side"/>
397
+ </xsl:for-each>
398
+ </xsl:if>
310
399
  </xsl:copy>
311
400
  </xsl:template>
312
401
 
@@ -340,23 +429,93 @@
340
429
  </xsl:template>
341
430
 
342
431
 
343
- <xsl:template match="bipm:fn[ancestor::bipm:quote]" mode="flatxml">
344
- <xsl:element name="note_side" namespace="https://www.metanorma.org/ns/bipm">
345
- <xsl:apply-templates mode="flatxml"/>
346
- </xsl:element>
432
+ <!-- change fn to xref with asterisks --> <!-- all fn except fn in table (but not quote table) -->
433
+ <xsl:template match="bipm:fn[ancestor::bipm:quote or not(ancestor::bipm:table)]" mode="flatxml">
434
+ <xsl:choose>
435
+ <!-- see template above with @depth = 4 -->
436
+ <xsl:when test="ancestor::bipm:clause[1]/bipm:title/@depth = 4 and count(ancestor::bipm:clause[2]/bipm:title[@depth = 3]/following-sibling::*[1][local-name() = 'note']) &gt; 0">
437
+ <xsl:apply-templates select="." mode="fn_to_xref"/>
438
+ </xsl:when>
439
+ <xsl:when test="ancestor::bipm:li">
440
+ <xsl:apply-templates select="." mode="fn_to_xref"/> <!-- displays asterisks with link to side note -->
441
+ </xsl:when>
442
+ <xsl:otherwise>
443
+ <xsl:apply-templates select="." mode="fn_to_xref"/> <!-- displays asterisks with link to side note -->
444
+ <xsl:call-template name="fn_to_note_side"/> <!-- convert footnote to side note with asterisk at start -->
445
+ <!-- <xsl:element name="note_side" namespace="https://www.metanorma.org/ns/bipm">
446
+ <xsl:apply-templates mode="flatxml"/>
447
+ </xsl:element> -->
448
+ </xsl:otherwise>
449
+ </xsl:choose>
347
450
  </xsl:template>
348
451
 
349
- <xsl:template match="bipm:fn[ancestor::bipm:quote]" mode="flatxml_list">
350
- <xsl:element name="note_side" namespace="https://www.metanorma.org/ns/bipm">
351
- <xsl:apply-templates mode="flatxml_list"/>
452
+ <!-- change fn to xref with asterisks --> <!-- all fn except fn in table (but not quote table) -->
453
+ <xsl:template match="bipm:fn[ancestor::bipm:quote or not(ancestor::bipm:table)]" mode="flatxml_list">
454
+ <xsl:choose>
455
+ <!-- see template above with @depth = 4 -->
456
+ <xsl:when test="ancestor::bipm:clause[1]/bipm:title/@depth = 4 and count(ancestor::bipm:clause[2]/bipm:title[@depth = 3]/following-sibling::*[1][local-name() = 'note']) &gt; 0">
457
+ <xsl:apply-templates select="." mode="fn_to_xref"/>
458
+ </xsl:when>
459
+ <xsl:when test="ancestor::bipm:li">
460
+ <xsl:apply-templates select="." mode="fn_to_xref"/> <!-- displays asterisks with link to side note -->
461
+ </xsl:when>
462
+ <xsl:otherwise>
463
+ <xsl:apply-templates select="." mode="fn_to_xref"/> <!-- displays asterisks with link to side note -->
464
+ <xsl:call-template name="fn_to_note_side"/> <!-- convert footnote to side note with asterisk at start -->
465
+ <!-- <xsl:element name="note_side" namespace="https://www.metanorma.org/ns/bipm">
466
+ <xsl:apply-templates mode="flatxml"/>
467
+ </xsl:element> -->
468
+ </xsl:otherwise>
469
+ </xsl:choose>
470
+ </xsl:template>
471
+
472
+ <xsl:template match="bipm:fn" mode="fn_to_xref">
473
+ <xsl:element name="xref" namespace="https://www.metanorma.org/ns/bipm">
474
+
475
+ <xsl:attribute name="target">
476
+ <xsl:call-template name="fn_reference_to_xref_target"/>
477
+ </xsl:attribute>
478
+
479
+ <xsl:variable name="curr_clause_id" select="normalize-space(ancestor::bipm:clause[1]/@id)"/>
480
+ <xsl:variable name="curr_annex_id" select="normalize-space(ancestor::bipm:annex[1]/@id)"/>
481
+
482
+ <xsl:variable name="number">
483
+ <xsl:choose>
484
+ <xsl:when test="$curr_clause_id != ''">
485
+ <xsl:number count="bipm:fn[ancestor::bipm:clause[1]/@id = $curr_clause_id][ancestor::bipm:quote or not(ancestor::bipm:table)]" level="any"/>
486
+ </xsl:when>
487
+ <xsl:otherwise>
488
+ <xsl:number count="bipm:fn[ancestor::bipm:annex[1]/@id = $curr_annex_id]"/>
489
+ </xsl:otherwise>
490
+ </xsl:choose>
491
+ </xsl:variable>
492
+
493
+ <!-- <xsl:variable name="asterisks">
494
+ <xsl:call-template name="repeat">
495
+ <xsl:with-param name="char" select="'*'"/>
496
+ <xsl:with-param name="count" select="$number + 1"/>
497
+ </xsl:call-template>
498
+ </xsl:variable>
499
+ <xsl:value-of select="$asterisks"/> -->
500
+ <xsl:element name="sup_fn" namespace="https://www.metanorma.org/ns/bipm">
501
+ <xsl:value-of select="concat('(',$number,')')"/>
502
+ </xsl:element>
503
+ <!-- <xsl:text> </xsl:text> -->
504
+
352
505
  </xsl:element>
353
506
  </xsl:template>
354
507
 
355
- <!-- envelope standalone note in p -->
356
- <!-- <p>
357
- <xsl:copy-of select="."/>
358
- </p>
359
- </xsl:template> -->
508
+ <xsl:template name="fn_reference_to_xref_target">
509
+ <xsl:variable name="lang" select="ancestor::bipm:bipm-standard/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
510
+ <xsl:variable name="gen_id" select="generate-id()"/>
511
+ <xsl:variable name="curr_clause_id" select="ancestor::bipm:clause[1]/@id"/>
512
+ <xsl:variable name="number">
513
+ <xsl:number count="bipm:fn[ancestor::bipm:clause[1]/@id = $curr_clause_id][ancestor::bipm:quote or not(ancestor::bipm:table)]" level="any"/>
514
+ </xsl:variable>
515
+ <xsl:value-of select="concat($lang, '_footnote_', @reference, '_', $number, '_', $gen_id)"/>
516
+ </xsl:template>
517
+
518
+
360
519
  <xsl:template match="bipm:preface/bipm:clause[position() &gt; 1]" mode="flatxml">
361
520
  <xsl:copy-of select="."/>
362
521
  </xsl:template>
@@ -380,44 +539,30 @@
380
539
  </xsl:copy>
381
540
  </xsl:template>
382
541
 
383
-
384
- <!-- <xsl:template match="bipm:li[last()]" mode="flatxml_list">
385
- <xsl:copy>
386
- <xsl:apply-templates select="@*" mode="flatxml_list"/>
387
- <xsl:attribute name="list_type">
388
- <xsl:value-of select="local-name(..)"/>
389
- </xsl:attribute>
390
- <xsl:attribute name="label">
391
- <xsl:call-template name="setListItemLabel"/>
392
- </xsl:attribute>
393
- <xsl:apply-templates select="node()" mode="flatxml_list"/>
394
- <xsl:copy-of select="following-sibling::*"/>
395
- </xsl:copy>
396
- </xsl:template> -->
397
-
398
542
  <!-- copy 'ol' 'ul' properties to each 'li' -->
399
- <!-- move note for list (list level note) into latest 'li' -->
543
+ <!-- OBSOLETE: move note for list (list level note) into latest 'li' -->
400
544
  <!-- move note for list (list level note) into first 'li' -->
401
- <xsl:template match="bipm:li" mode="flatxml_list">
545
+ <!-- move fn for list-item (list-item level footnote) into first 'li' -->
546
+ <xsl:template match="bipm:li" mode="flatxml_list">
402
547
  <xsl:copy>
403
548
  <xsl:apply-templates select="@*" mode="flatxml_list"/>
404
549
  <xsl:attribute name="list_type">
405
550
  <xsl:value-of select="local-name(..)"/>
406
551
  </xsl:attribute>
407
- <xsl:attribute name="label">
408
- <xsl:call-template name="setListItemLabel"/>
409
- </xsl:attribute>
552
+ <!-- <xsl:attribute name="label"> -->
553
+ <xsl:call-template name="setListItemLabel"/>
554
+ <!-- </xsl:attribute> -->
410
555
  <xsl:if test="ancestor::bipm:quote">
411
- <xsl:attribute name="parent-type">quote</xsl:attribute>
556
+ <xsl:attribute name="parent-type">quote</xsl:attribute>
412
557
  </xsl:if>
413
558
  <xsl:apply-templates mode="flatxml_list"/>
414
559
 
415
- <!-- move note for list (list level note) into first 'li' -->
560
+
416
561
  <!-- if current li is first -->
417
562
  <xsl:if test="not(preceding-sibling::*[local-name() = 'li'])">
418
563
  <!-- <xsl:copy-of select="following-sibling::bipm:li[last()]/following-sibling::*"/> -->
419
564
 
420
-
565
+ <!-- move note for list (list level note) into first 'li' -->
421
566
  <xsl:for-each select="following-sibling::bipm:li[last()]/following-sibling::*">
422
567
  <xsl:choose>
423
568
  <xsl:when test="local-name() = 'note'">
@@ -428,6 +573,27 @@
428
573
  </xsl:otherwise>
429
574
  </xsl:choose>
430
575
  </xsl:for-each>
576
+
577
+ <xsl:if test="ancestor::bipm:quote or not(ancestor::bipm:table)">
578
+
579
+ <xsl:choose>
580
+ <!-- see template above with @depth = 4 -->
581
+ <xsl:when test="ancestor::bipm:clause[1]/bipm:title/@depth = 4 and count(ancestor::bipm:clause[2]/bipm:title[@depth = 3]/following-sibling::*[1][local-name() = 'note']) &gt; 0"/>
582
+ <xsl:otherwise>
583
+
584
+ <!-- move all footnotes in the current list (not only current list item) into first 'li' -->
585
+ <xsl:variable name="curr_list_id" select="../@id"/>
586
+ <xsl:for-each select="..//bipm:fn[ancestor::bipm:ol[1]/@id = $curr_list_id or ancestor::bipm:ul[1]/@id = $curr_list_id]">
587
+
588
+ <xsl:call-template name="fn_to_note_side"/>
589
+
590
+
591
+ </xsl:for-each>
592
+
593
+ </xsl:otherwise>
594
+ </xsl:choose>
595
+
596
+ </xsl:if>
431
597
 
432
598
  </xsl:if>
433
599
 
@@ -438,35 +604,100 @@
438
604
  </xsl:copy>
439
605
  </xsl:template>
440
606
 
441
- <!-- remove latest element (after li), because they moved into latest 'li' -->
442
- <xsl:template match="bipm:ul/*[not(local-name() = 'li') and not(following-sibling::*[local-name() = 'li'])]" mode="flatxml_list"/>
443
- <xsl:template match="bipm:ol/*[not(local-name() = 'li') and not(following-sibling::*[local-name() = 'li'])]" mode="flatxml_list"/>
444
607
 
445
- <xsl:template name="setListItemLabel">
446
- <xsl:choose>
447
- <xsl:when test="local-name(..) = 'ul' and ../ancestor::bipm:ul">—</xsl:when> <!-- &#x2014; dash -->
448
- <xsl:when test="local-name(..) = 'ul'">•</xsl:when> <!-- &#x2014; dash -->
449
- <xsl:otherwise> <!-- for ordered lists -->
608
+ <xsl:template name="fn_to_note_side">
609
+ <xsl:element name="note_side" namespace="https://www.metanorma.org/ns/bipm">
610
+
611
+ <xsl:attribute name="id">
612
+ <xsl:call-template name="fn_reference_to_xref_target"/>
613
+ </xsl:attribute>
614
+
615
+ <xsl:variable name="curr_clause_id" select="normalize-space(ancestor::bipm:clause[1]/@id)"/>
616
+ <xsl:variable name="curr_annex_id" select="normalize-space(ancestor::bipm:annex[1]/@id)"/>
617
+
618
+ <xsl:variable name="number">
450
619
  <xsl:choose>
451
- <xsl:when test="../@type = 'arabic'">
452
- <xsl:number format="1."/>
453
- </xsl:when>
454
- <xsl:when test="../@type = 'alphabet'">
455
- <xsl:number format="a)"/>
456
- </xsl:when>
457
- <xsl:when test="../@type = 'alphabet_upper'">
458
- <xsl:number format="A)"/>
459
- </xsl:when>
460
- <xsl:when test="../@type = 'roman'">
461
- <xsl:number format="i)"/>
620
+ <xsl:when test="$curr_clause_id != ''">
621
+ <xsl:number count="bipm:fn[ancestor::bipm:clause[1]/@id = $curr_clause_id][ancestor::bipm:quote or not(ancestor::bipm:table)]" level="any"/>
462
622
  </xsl:when>
463
623
  <xsl:otherwise>
464
- <xsl:number format="1)"/>
624
+ <xsl:number count="bipm:fn[ancestor::bipm:annex[1]/@id = $curr_annex_id]"/>
465
625
  </xsl:otherwise>
466
626
  </xsl:choose>
467
- </xsl:otherwise>
627
+ </xsl:variable>
628
+
629
+ <!-- <xsl:variable name="asterisks">
630
+ <xsl:call-template name="repeat">
631
+ <xsl:with-param name="char" select="'*'"/>
632
+ <xsl:with-param name="count" select="$number + 1"/>
633
+ </xsl:call-template>
634
+ </xsl:variable>
635
+ <xsl:value-of select="$asterisks"/> -->
636
+ <xsl:element name="sup_fn" namespace="https://www.metanorma.org/ns/bipm">
637
+ <xsl:value-of select="concat('(',$number,')')"/>
638
+ </xsl:element>
639
+ <xsl:text> </xsl:text>
640
+
641
+ <xsl:apply-templates mode="flatxml"/>
642
+ </xsl:element>
643
+ </xsl:template>
644
+
645
+ <!-- remove latest elements (after li), because they moved into latest 'li' -->
646
+ <xsl:template match="bipm:ul/*[not(local-name() = 'li') and not(following-sibling::*[local-name() = 'li'])]" mode="flatxml_list"/>
647
+ <xsl:template match="bipm:ol/*[not(local-name() = 'li') and not(following-sibling::*[local-name() = 'li'])]" mode="flatxml_list"/>
648
+
649
+ <xsl:template name="setListItemLabel">
650
+ <xsl:attribute name="label">
651
+ <xsl:choose>
652
+ <xsl:when test="local-name(..) = 'ul' and ../ancestor::bipm:ul">−</xsl:when> <!-- &#x2212; - minus sign. &#x2014; - dash -->
653
+ <xsl:when test="local-name(..) = 'ul'">•</xsl:when> <!-- &#x2014; dash -->
654
+ <xsl:otherwise> <!-- for ordered lists -->
655
+ <xsl:variable name="start_value">
656
+ <xsl:choose>
657
+ <xsl:when test="normalize-space(../@start) != ''">
658
+ <xsl:value-of select="number(../@start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
659
+ </xsl:when>
660
+ <xsl:otherwise>0</xsl:otherwise>
661
+ </xsl:choose>
662
+ </xsl:variable>
663
+
664
+ <xsl:variable name="curr_value">
665
+ <xsl:number/>
666
+ </xsl:variable>
667
+
668
+ <xsl:variable name="format">
669
+ <xsl:choose>
670
+ <xsl:when test="../@type = 'arabic'">1.</xsl:when>
671
+ <xsl:when test="../@type = 'alphabet'">a)</xsl:when>
672
+ <!-- <xsl:choose>
673
+ <xsl:when test="$independentAppendix = ''">a)</xsl:when>
674
+ <xsl:otherwise>(a)</xsl:otherwise>
675
+ </xsl:choose>
676
+ </xsl:when> -->
677
+ <xsl:when test="../@type = 'alphabet_upper'">A.</xsl:when>
678
+ <xsl:when test="../@type = 'roman'">(i)</xsl:when>
679
+ <xsl:when test="../@type = 'roman_upper'">I.</xsl:when>
680
+ <xsl:otherwise>1.</xsl:otherwise>
681
+ </xsl:choose>
682
+ </xsl:variable>
683
+
684
+ <xsl:number value="$start_value + $curr_value" format="{$format}"/>
685
+
686
+ </xsl:otherwise>
687
+ </xsl:choose>
688
+ </xsl:attribute>
689
+ <xsl:choose>
690
+ <xsl:when test="local-name(..) = 'ul' and ../ancestor::bipm:ul"/> <!-- &#x2014; dash -->
691
+ <xsl:when test="local-name(..) = 'ul'">
692
+ <xsl:attribute name="font-size">15pt</xsl:attribute>
693
+ </xsl:when>
468
694
  </xsl:choose>
469
695
  </xsl:template>
696
+ <!-- ================================= -->
697
+ <!-- END: Flattening xml for fit notes at page sides (margins) -->
698
+ <!-- ================================= -->
699
+
700
+
470
701
 
471
702
 
472
703
  <xsl:template match="bipm:bipm-standard"/>
@@ -479,7 +710,7 @@
479
710
  <xsl:call-template name="namespaceCheck"/>
480
711
  </xsl:for-each>
481
712
 
482
- <xsl:variable name="curr_lang" select="bipm:bibdata/bipm:language"/>
713
+ <xsl:variable name="curr_lang" select="bipm:bibdata/bipm:language[@current = 'true']"/>
483
714
 
484
715
  <xsl:if test="$debug = 'true'">
485
716
  <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
@@ -490,7 +721,7 @@
490
721
 
491
722
 
492
723
  <xsl:choose>
493
- <xsl:when test="$independentAppendix = ''">
724
+ <xsl:when test="$independentAppendix = '' and not($doctype = 'guide')">
494
725
 
495
726
  <!-- Document pages -->
496
727
  <fo:page-sequence master-reference="document" force-page-count="no-force">
@@ -557,9 +788,12 @@
557
788
 
558
789
  <fo:block-container absolute-position="fixed" top="200mm" height="69mm" font-family="Times New Roman" text-align="center" display-align="after">
559
790
  <xsl:apply-templates select="bipm:boilerplate/bipm:feedback-statement"/>
560
- <fo:block margin-top="15mm">
561
- <xsl:text>ISBN </xsl:text><xsl:value-of select="bipm:bibdata/bipm:docidentifier[@type='ISBN']"/>
562
- </fo:block>
791
+ <xsl:variable name="ISBN" select="normalize-space(bipm:bibdata/bipm:docidentifier[@type='ISBN'])"/>
792
+ <xsl:if test="$ISBN != ''">
793
+ <fo:block margin-top="15mm">
794
+ <xsl:text>ISBN </xsl:text><xsl:value-of select="$ISBN"/>
795
+ </fo:block>
796
+ </xsl:if>
563
797
  </fo:block-container>
564
798
 
565
799
  </fo:flow>
@@ -567,7 +801,21 @@
567
801
 
568
802
  <fo:page-sequence master-reference="document" force-page-count="no-force">
569
803
  <xsl:call-template name="insertFootnoteSeparator"/>
570
- <xsl:call-template name="insertHeaderFooter"/>
804
+
805
+ <xsl:variable name="header-title">
806
+ <xsl:choose>
807
+ <xsl:when test="bipm:preface/*[1]/bipm:title[1]/*[local-name() = 'tab']">
808
+ <xsl:apply-templates select="bipm:preface/*[1]/bipm:title[1]/*[local-name() = 'tab'][1]/following-sibling::node()" mode="header"/>
809
+ </xsl:when>
810
+ <xsl:otherwise>
811
+ <xsl:apply-templates select="bipm:preface/*[1]/bipm:title[1]" mode="header"/>
812
+ </xsl:otherwise>
813
+ </xsl:choose>
814
+ </xsl:variable>
815
+ <xsl:call-template name="insertHeaderFooter">
816
+ <xsl:with-param name="header-title" select="$header-title"/>
817
+ </xsl:call-template>
818
+
571
819
  <fo:flow flow-name="xsl-region-body">
572
820
  <fo:block line-height="135%">
573
821
  <!-- <xsl:apply-templates select="bipm:preface/bipm:abstract" /> -->
@@ -584,18 +832,24 @@
584
832
 
585
833
  <fo:page-sequence master-reference="document" force-page-count="no-force">
586
834
  <xsl:call-template name="insertFootnoteSeparator"/>
587
- <xsl:call-template name="insertHeaderFooter"/>
835
+
836
+ <xsl:variable name="title-toc">
837
+ <fo:inline>
838
+ <xsl:call-template name="getTitle">
839
+ <xsl:with-param name="name" select="'title-toc'"/>
840
+ </xsl:call-template>
841
+ </fo:inline>
842
+ </xsl:variable>
843
+ <xsl:call-template name="insertHeaderFooter">
844
+ <xsl:with-param name="header-title"><xsl:value-of select="$title-toc"/></xsl:with-param>
845
+ </xsl:call-template>
846
+
588
847
  <fo:flow flow-name="xsl-region-body">
589
848
 
590
849
  <fo:block-container margin-left="-14mm" margin-right="0mm">
591
850
  <fo:block-container margin-left="0mm" margin-right="0mm">
592
- <fo:block font-family="Arial" font-size="16pt" font-weight="bold" text-align-last="justify" margin-bottom="84pt">
593
- <xsl:variable name="title-toc">
594
- <xsl:call-template name="getTitle">
595
- <xsl:with-param name="name" select="'title-toc'"/>
596
- </xsl:call-template>
597
- </xsl:variable>
598
- <fo:marker marker-class-name="header-title"><xsl:value-of select="$title-toc"/></fo:marker>
851
+ <fo:block font-family="Arial" font-size="16pt" font-weight="bold" text-align-last="justify" margin-bottom="82pt">
852
+ <!-- <fo:marker marker-class-name="header-title"><xsl:value-of select="$title-toc"/></fo:marker> -->
599
853
  <fo:inline><xsl:value-of select="//bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type='main']"/></fo:inline>
600
854
  <fo:inline keep-together.within-line="always">
601
855
  <fo:leader leader-pattern="space"/>
@@ -611,12 +865,28 @@
611
865
  <fo:block>
612
866
  <!-- <xsl:copy-of select="$contents"/> -->
613
867
 
614
- <xsl:for-each select="xalan:nodeset($contents)/doc[@id = $docid]//item[@display='true' and not(@type = 'annex') and not(@parent = 'annex')]">
615
- <xsl:call-template name="insertContentItem"/>
616
- </xsl:for-each>
617
- <xsl:for-each select="xalan:nodeset($contents)/doc[@id = $docid]//item[@display='true' and (@type = 'annex' or (@level = 2 and @parent = 'annex'))]">
618
- <xsl:call-template name="insertContentItem"/>
619
- </xsl:for-each>
868
+ <xsl:if test="xalan:nodeset($contents)/doc[@id = $docid]//item[@display='true']">
869
+ <fo:table table-layout="fixed" width="100%">
870
+ <fo:table-column column-width="127mm"/>
871
+ <fo:table-column column-width="12mm"/>
872
+ <fo:table-body>
873
+ <xsl:for-each select="xalan:nodeset($contents)/doc[@id = $docid]//item[@display='true' and not(@type = 'annex') and not(@parent = 'annex')]">
874
+ <xsl:call-template name="insertContentItem"/>
875
+ </xsl:for-each>
876
+ <xsl:if test="$doctype ='brochure'">
877
+ <!-- insert page break between main sections and appendixes in ToC -->
878
+ <fo:table-row>
879
+ <fo:table-cell number-columns-spanned="2">
880
+ <fo:block break-after="page"/>
881
+ </fo:table-cell>
882
+ </fo:table-row>
883
+ </xsl:if>
884
+ <xsl:for-each select="xalan:nodeset($contents)/doc[@id = $docid]//item[@display='true' and (@type = 'annex')]"> <!-- or (@level = 2 and @parent = 'annex') -->
885
+ <xsl:call-template name="insertContentItem"/>
886
+ </xsl:for-each>
887
+ </fo:table-body>
888
+ </fo:table>
889
+ </xsl:if>
620
890
  </fo:block>
621
891
  </fo:block-container>
622
892
 
@@ -639,47 +909,6 @@
639
909
  <!-- Normative references -->
640
910
  <xsl:apply-templates select="bipm:bibliography/bipm:references[@normative='true']" mode="sections"/>
641
911
 
642
-
643
- <!-- Table of Contents for Annexes -->
644
- <!-- <fo:page-sequence master-reference="document" force-page-count="no-force">
645
- <xsl:call-template name="insertHeaderFooter"/>
646
- <fo:flow flow-name="xsl-region-body">
647
-
648
- <fo:block-container margin-left="-18mm" margin-right="-1mm">
649
- <fo:block-container margin-left="0mm" margin-right="0mm">
650
- <fo:block font-family="Arial" font-size="16pt" font-weight="bold" text-align-last="justify" margin-bottom="84pt">
651
- <xsl:variable name="title-toc">
652
- <xsl:call-template name="getTitle">
653
- <xsl:with-param name="name" select="'title-toc'"/>
654
- </xsl:call-template>
655
- </xsl:variable>
656
- <fo:marker marker-class-name="header-title"><xsl:value-of select="$title-toc"/></fo:marker>
657
- <fo:inline><xsl:value-of select="$title-fr"/></fo:inline>
658
- <fo:inline keep-together.within-line="always">
659
- <fo:leader leader-pattern="space"/>
660
- <fo:inline>
661
- <xsl:value-of select="$title-toc"/>
662
- </fo:inline>
663
- </fo:inline>
664
- </fo:block>
665
- </fo:block-container>
666
- </fo:block-container>
667
-
668
- <fo:block-container line-height="130%">
669
- <fo:block>
670
- <xsl:for-each select="xalan:nodeset($contents)/doc[@id = $docid]//item[@display='true' and @type = 'annex']">
671
-
672
- <xsl:call-template name="insertContentItem"/>
673
-
674
- </xsl:for-each>
675
- </fo:block>
676
- </fo:block-container>
677
-
678
- </fo:flow>
679
-
680
- </fo:page-sequence> -->
681
-
682
-
683
912
  <xsl:apply-templates select="bipm:annex" mode="sections"/>
684
913
 
685
914
  <!-- Bibliography -->
@@ -747,12 +976,60 @@
747
976
  </fo:block-container>
748
977
 
749
978
  <fo:block-container font-size="18pt" font-weight="bold" text-align="center">
750
- <fo:block>
751
- <xsl:value-of select="//bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type='appendix']"/>
979
+ <fo:block>
980
+
981
+ <xsl:variable name="title">
982
+ <xsl:choose>
983
+ <xsl:when test="$independentAppendix != ''">
984
+ <xsl:value-of select="//bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type='appendix']"/>
985
+ </xsl:when>
986
+ <xsl:otherwise> <!-- doctype = 'guide' -->
987
+ <xsl:value-of select="//bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type='main']"/>
988
+ </xsl:otherwise>
989
+ </xsl:choose>
990
+ </xsl:variable>
991
+
992
+ <xsl:variable name="mep_text" select="'Mise en pratique'"/>
993
+
994
+ <xsl:choose>
995
+ <xsl:when test="$curr_lang = 'en' and contains($title, $mep_text)">
996
+ <xsl:value-of select="substring-before($title, $mep_text)"/>
997
+ <xsl:text> </xsl:text><fo:inline font-style="italic"><xsl:value-of select="$mep_text"/></fo:inline><xsl:text> </xsl:text>
998
+ <xsl:value-of select="substring-after($title, $mep_text)"/>
999
+ </xsl:when>
1000
+ <xsl:otherwise>
1001
+ <xsl:value-of select="$title"/>
1002
+ </xsl:otherwise>
1003
+ </xsl:choose>
1004
+
752
1005
  </fo:block>
1006
+
1007
+
1008
+ <xsl:variable name="part_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:part)"/>
1009
+ <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type = 'part']">
1010
+ <fo:block>
1011
+ <xsl:if test="$part_num != ''">
1012
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang=$curr_lang]),'#',$part_num)"/>
1013
+ </xsl:if>
1014
+ <xsl:text>: </xsl:text>
1015
+ <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type = 'part']"/>
1016
+ </fo:block>
1017
+ </xsl:if>
1018
+ <xsl:variable name="subpart_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:subpart)"/>
1019
+ <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type = 'subpart']">
1020
+ <fo:block>
1021
+ <xsl:if test="$subpart_num != ''">
1022
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-subpart[@lang=$curr_lang]),'#',$subpart_num)"/>
1023
+ </xsl:if>
1024
+ <xsl:text>: </xsl:text>
1025
+ <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = $curr_lang and @type = 'subpart']"/>
1026
+ </fo:block>
1027
+ </xsl:if>
1028
+
1029
+
753
1030
  <fo:block> </fo:block>
754
1031
  <fo:block font-size="9pt">
755
- <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:editorialgroup/bipm:committee"/>
1032
+ <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:editorialgroup/bipm:committee/bipm:variant[@language = $curr_lang]"/>
756
1033
  </fo:block>
757
1034
  </fo:block-container>
758
1035
 
@@ -774,11 +1051,15 @@
774
1051
  <fo:block> </fo:block>
775
1052
  <fo:block> </fo:block>
776
1053
  <fo:block text-align-last="justify">
777
- <xsl:choose>
778
- <xsl:when test="$lang = 'fr'">Annexe </xsl:when>
779
- <xsl:otherwise>Appendix </xsl:otherwise>
780
- </xsl:choose>
781
- <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix"/>
1054
+ <fo:inline>
1055
+ <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix">
1056
+ <xsl:choose>
1057
+ <xsl:when test="$lang = 'fr'">Annexe </xsl:when>
1058
+ <xsl:otherwise>Appendix </xsl:otherwise>
1059
+ </xsl:choose>
1060
+ <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix"/>
1061
+ </xsl:if>
1062
+ </fo:inline>
782
1063
  <fo:inline keep-together.within-line="always">
783
1064
  <fo:leader leader-pattern="space"/>
784
1065
  <xsl:call-template name="printRevisionDate">
@@ -802,6 +1083,7 @@
802
1083
  <!-- Document Pages -->
803
1084
 
804
1085
  <xsl:apply-templates select="bipm:sections/*" mode="sections"/>
1086
+ <!-- <xsl:call-template name="sections_appendix"/> --> <!-- without pagebreaks -->
805
1087
 
806
1088
  <!-- Normative references -->
807
1089
  <xsl:apply-templates select="bipm:bibliography/bipm:references[@normative='true']" mode="sections"/>
@@ -908,8 +1190,10 @@
908
1190
  <xsl:variable name="weight-bold">500</xsl:variable>
909
1191
 
910
1192
  <fo:block-container absolute-position="fixed" left="12.5mm" top="60mm">
911
- <fo:block font-size="22.2pt" font-weight="{$weight-normal}">Le Système international d’unités</fo:block>
912
- <fo:block font-size="22.2pt" font-weight="{$weight-bold}" margin-top="1mm">The International System of Units</fo:block>
1193
+
1194
+ <fo:block font-size="22.2pt" font-weight="{$weight-normal}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'main']"/></fo:block>
1195
+ <fo:block font-size="22.2pt" font-weight="{$weight-bold}" margin-top="1mm"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'main']"/></fo:block>
1196
+
913
1197
  <xsl:variable name="edition_str">édition</xsl:variable>
914
1198
  <!-- <xsl:choose>
915
1199
  <xsl:when test="$lang = 'fr'">édition</xsl:when>
@@ -920,17 +1204,115 @@
920
1204
  </fo:block-container>
921
1205
 
922
1206
  <fo:block-container height="98%" display-align="center">
1207
+
1208
+ <!-- Appendix titles processing -->
923
1209
  <xsl:variable name="appendix_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix)"/>
924
1210
  <xsl:if test="$appendix_num != ''">
925
1211
  <fo:block font-size="17pt" font-weight="{$weight-normal}">Annexe <xsl:value-of select="$appendix_num"/></fo:block>
926
1212
  <fo:block font-size="17pt" font-weight="{$weight-bold}">Appendix <xsl:value-of select="$appendix_num"/></fo:block>
927
1213
  </xsl:if>
928
- <fo:block font-size="30.4pt">
929
- <fo:block> </fo:block>
930
- <fo:block font-weight="{$weight-normal}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'appendix']"/></fo:block>
931
- <fo:block> </fo:block>
932
- <fo:block font-weight="{$weight-bold}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'appendix']"/></fo:block>
933
- </fo:block>
1214
+
1215
+ <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'appendix']">
1216
+ <fo:block font-size="30.4pt">
1217
+ <fo:block> </fo:block>
1218
+ <fo:block font-weight="{$weight-normal}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'appendix']"/></fo:block>
1219
+ <fo:block> </fo:block>
1220
+ <fo:block font-weight="{$weight-bold}">
1221
+ <xsl:variable name="title_en" select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'appendix']"/>
1222
+ <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1223
+ <xsl:choose>
1224
+ <xsl:when test="contains($title_en, $mep_text)">
1225
+ <xsl:value-of select="substring-before($title_en, $mep_text)"/>
1226
+ <xsl:text> </xsl:text><fo:inline font-style="italic"><xsl:value-of select="$mep_text"/></fo:inline><xsl:text> </xsl:text>
1227
+ <xsl:value-of select="substring-after($title_en, $mep_text)"/>
1228
+ </xsl:when>
1229
+ <xsl:otherwise>
1230
+ <xsl:value-of select="$title_en"/>
1231
+ </xsl:otherwise>
1232
+ </xsl:choose>
1233
+ </fo:block>
1234
+ </fo:block>
1235
+ </xsl:if>
1236
+ <!-- End Appendix titles processing -->
1237
+
1238
+
1239
+ <!-- Part titles processing -->
1240
+ <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'part']">
1241
+ <xsl:variable name="part_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:part)"/>
1242
+ <xsl:if test="$part_num != ''">
1243
+ <!-- Part -->
1244
+ <fo:block font-size="17pt" font-weight="{$weight-normal}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='fr']),'#',$part_num)"/></fo:block>
1245
+ <!-- Partie -->
1246
+ <fo:block font-size="17pt" font-weight="{$weight-bold}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='en']),'#',$part_num)"/></fo:block>
1247
+ </xsl:if>
1248
+
1249
+ <fo:block font-size="30.4pt">
1250
+
1251
+ <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'part']">
1252
+ <fo:block> </fo:block>
1253
+ <fo:block font-weight="{$weight-normal}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'part']"/></fo:block>
1254
+ </xsl:if>
1255
+
1256
+ <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'part']">
1257
+ <fo:block> </fo:block>
1258
+ <fo:block font-weight="{$weight-bold}">
1259
+ <xsl:variable name="title_en" select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'part']"/>
1260
+ <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1261
+ <xsl:choose>
1262
+ <xsl:when test="contains($title_en, $mep_text)">
1263
+ <xsl:value-of select="substring-before($title_en, $mep_text)"/>
1264
+ <xsl:text> </xsl:text><fo:inline font-style="italic"><xsl:value-of select="$mep_text"/></fo:inline><xsl:text> </xsl:text>
1265
+ <xsl:value-of select="substring-after($title_en, $mep_text)"/>
1266
+ </xsl:when>
1267
+ <xsl:otherwise>
1268
+ <xsl:value-of select="$title_en"/>
1269
+ </xsl:otherwise>
1270
+ </xsl:choose>
1271
+ </fo:block>
1272
+ </xsl:if>
1273
+ </fo:block>
1274
+ </xsl:if>
1275
+ <!-- End Part titles processing -->
1276
+
1277
+ <!-- Sub-part titles processing -->
1278
+ <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@type = 'subpart']">
1279
+ <xsl:variable name="subpart_num" select="normalize-space(/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:subpart)"/>
1280
+ <xsl:if test="$subpart_num != ''">
1281
+ <!-- Sub-part -->
1282
+ <fo:block font-size="17pt" font-weight="{$weight-normal}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-subpart[@lang='fr']),'#',$subpart_num)"/> <xsl:value-of select="$subpart_num"/></fo:block>
1283
+ <!-- Partie de sub -->
1284
+ <fo:block font-size="17pt" font-weight="{$weight-bold}"><xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-subpart[@lang='en']),'#',$subpart_num)"/> <xsl:value-of select="$subpart_num"/></fo:block>
1285
+ </xsl:if>
1286
+
1287
+ <fo:block font-size="30.4pt">
1288
+
1289
+ <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'subpart']">
1290
+ <fo:block> </fo:block>
1291
+ <fo:block font-weight="{$weight-normal}"><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'fr' and @type = 'subpart']"/></fo:block>
1292
+ </xsl:if>
1293
+
1294
+ <xsl:if test="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'subpart']">
1295
+ <fo:block> </fo:block>
1296
+ <fo:block font-weight="{$weight-bold}">
1297
+ <xsl:variable name="title_en" select="/bipm:bipm-standard/bipm:bibdata/bipm:title[@language = 'en' and @type = 'subpart']"/>
1298
+ <xsl:variable name="mep_text" select="'Mise en pratique'"/>
1299
+ <xsl:choose>
1300
+ <xsl:when test="contains($title_en, $mep_text)">
1301
+ <xsl:value-of select="substring-before($title_en, $mep_text)"/>
1302
+ <xsl:text> </xsl:text><fo:inline font-style="italic"><xsl:value-of select="$mep_text"/></fo:inline><xsl:text> </xsl:text>
1303
+ <xsl:value-of select="substring-after($title_en, $mep_text)"/>
1304
+ </xsl:when>
1305
+ <xsl:otherwise>
1306
+ <xsl:value-of select="$title_en"/>
1307
+ </xsl:otherwise>
1308
+ </xsl:choose>
1309
+ </fo:block>
1310
+ </xsl:if>
1311
+ </fo:block>
1312
+ </xsl:if>
1313
+ <!-- End Sub-part titles processing -->
1314
+
1315
+
934
1316
  </fo:block-container>
935
1317
 
936
1318
  <!-- <fo:block-container>
@@ -959,10 +1341,10 @@
959
1341
  </fo:block>
960
1342
  </fo:block-container> -->
961
1343
 
962
- <fo:block-container absolute-position="fixed" left="12mm" top="242mm" height="42mm" display-align="after">
1344
+ <fo:block-container absolute-position="fixed" left="12mm" top="242mm" height="42mm" width="140mm" display-align="after">
963
1345
  <fo:block font-size="12pt">
964
- <fo:block>Comité consultatif du temps et des fréquences</fo:block>
965
- <fo:block><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:editorialgroup/bipm:committee"/></fo:block>
1346
+ <fo:block><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:editorialgroup/bipm:committee/bipm:variant[@language = 'fr']"/></fo:block>
1347
+ <fo:block><xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:editorialgroup/bipm:committee/bipm:variant[@language = 'en']"/></fo:block>
966
1348
  <fo:block> </fo:block>
967
1349
  <!-- <fo:block>BIPM SI MEP S1</fo:block> -->
968
1350
  <fo:block>
@@ -1107,7 +1489,7 @@
1107
1489
  <xsl:choose>
1108
1490
  <xsl:when test="$doc_split_by_language = ''"><!-- all documents -->
1109
1491
  <xsl:for-each select="//bipm:bipm-standard/bipm:bibdata">
1110
- <lang><xsl:value-of select="bipm:language"/></lang>
1492
+ <lang><xsl:value-of select="bipm:language[@current = 'true']"/></lang>
1111
1493
  </xsl:for-each>
1112
1494
  <!-- <xsl:choose>
1113
1495
  <xsl:when test="count(//bipm:bipm-standard) = 1">
@@ -1131,87 +1513,123 @@
1131
1513
  </xsl:template>
1132
1514
 
1133
1515
  <xsl:template name="insertContentItem">
1134
- <fo:block>
1135
- <xsl:if test="@level = 1">
1136
- <xsl:attribute name="space-after">6pt</xsl:attribute>
1137
- <xsl:attribute name="font-family">Arial</xsl:attribute>
1138
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1139
- <xsl:attribute name="font-weight">bold</xsl:attribute>
1140
- <xsl:if test="@type = 'annex'">
1141
- <xsl:attribute name="space-before">14pt</xsl:attribute>
1142
- <xsl:attribute name="space-after">0pt</xsl:attribute>
1516
+ <fo:table-row>
1517
+ <xsl:variable name="space-before">
1518
+ <xsl:if test="@level = 1">
1519
+ <xsl:if test="@type = 'annex'">14pt</xsl:if>
1143
1520
  </xsl:if>
1144
- </xsl:if>
1145
- <xsl:if test="@level &gt;= 2 and not(@parent = 'annex')">
1146
- <xsl:attribute name="font-size">10.5pt</xsl:attribute>
1147
- </xsl:if>
1148
- <xsl:if test="@level = 2">
1149
- <xsl:attribute name="margin-left">8mm</xsl:attribute>
1150
- </xsl:if>
1151
- <xsl:if test="@level &gt; 2">
1152
- <xsl:attribute name="margin-left">9mm</xsl:attribute>
1153
- </xsl:if>
1154
- <xsl:if test="@level &gt;= 2 and @parent = 'annex'">
1155
- <xsl:attribute name="font-family">Arial</xsl:attribute>
1156
- <xsl:attribute name="font-size">8pt</xsl:attribute>
1157
- <xsl:attribute name="margin-left">25mm</xsl:attribute>
1158
- <xsl:attribute name="font-weight">bold</xsl:attribute>
1159
- </xsl:if>
1160
-
1161
- <xsl:if test="@level = 2 and not(following-sibling::item[@display='true']) and not(item[@display='true'])">
1162
- <xsl:attribute name="space-after">12pt</xsl:attribute>
1163
- </xsl:if>
1164
- <xsl:if test="@level = 3 and not(following-sibling::item[@display='true']) and not(../following-sibling::item[@display='true'])">
1165
- <xsl:attribute name="space-after">12pt</xsl:attribute>
1166
- </xsl:if>
1521
+ </xsl:variable>
1522
+ <xsl:variable name="space-after">
1523
+ <xsl:choose>
1524
+ <xsl:when test="@level = 1 and @type = 'annex'">0pt</xsl:when>
1525
+ <xsl:when test="@level = 1">6pt</xsl:when>
1526
+ <xsl:when test="@level = 2 and not(following-sibling::item[@display='true']) and not(item[@display='true']) and not(position() = last())">12pt</xsl:when>
1527
+ <xsl:when test="@level = 3 and not(following-sibling::item[@display='true']) and not(../following-sibling::item[@display='true']) and not(position() = last())">12pt</xsl:when>
1528
+ </xsl:choose>
1529
+ </xsl:variable>
1167
1530
 
1168
- <fo:list-block>
1169
- <xsl:attribute name="provisional-distance-between-starts">
1170
- <xsl:choose>
1171
- <xsl:when test="@section = '' or @level &gt; 3">0mm</xsl:when>
1172
- <xsl:when test="@level = 2 and @parent = 'annex'">0mm</xsl:when>
1173
- <xsl:when test="@level = 2">8mm</xsl:when>
1174
- <xsl:when test="@type = 'annex' and @level = 1">25mm</xsl:when>
1175
- <xsl:otherwise>7mm</xsl:otherwise>
1176
- </xsl:choose>
1177
- </xsl:attribute>
1178
-
1179
- <fo:list-item>
1180
- <fo:list-item-label end-indent="label-end()">
1181
- <fo:block>
1182
- <xsl:if test="@level = 1 or (@level = 2 and not(@parent = 'annex'))">
1183
- <xsl:value-of select="@section"/>
1184
- </xsl:if>
1185
- <fo:inline font-size="10pt" color="white">Z</fo:inline> <!-- for baseline alignment in string -->
1186
- </fo:block>
1187
- </fo:list-item-label>
1188
- <fo:list-item-body start-indent="body-start()">
1189
- <fo:block text-align-last="justify">
1190
- <xsl:if test="@level &gt;= 3">
1191
- <xsl:attribute name="margin-left">12mm</xsl:attribute>
1192
- <xsl:attribute name="text-indent">-12mm</xsl:attribute>
1193
- </xsl:if>
1194
- <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
1195
- <xsl:if test="@level &gt;= 3">
1196
- <fo:inline padding-right="2mm"><xsl:value-of select="@section"/></fo:inline>
1197
- </xsl:if>
1198
- <xsl:variable name="sectionTitle">
1199
- <xsl:apply-templates select="title"/>
1200
- </xsl:variable>
1201
- <fo:inline>
1202
- <xsl:value-of select="$sectionTitle"/>
1203
- </fo:inline>
1204
- <xsl:text> </xsl:text>
1205
- <fo:inline keep-together.within-line="always">
1206
- <fo:leader leader-pattern="space"/>
1207
- <fo:inline font-family="Arial" font-weight="bold" font-size="10pt"><fo:page-number-citation ref-id="{@id}"/></fo:inline>
1208
- </fo:inline>
1209
- </fo:basic-link>
1210
- </fo:block>
1211
- </fo:list-item-body>
1212
- </fo:list-item>
1213
- </fo:list-block>
1214
- </fo:block>
1531
+ <fo:table-cell>
1532
+ <xsl:if test="normalize-space($space-before) != ''">
1533
+ <xsl:attribute name="padding-top"><xsl:value-of select="normalize-space($space-before)"/></xsl:attribute>
1534
+ </xsl:if>
1535
+ <xsl:if test="normalize-space($space-after) != ''">
1536
+ <xsl:attribute name="padding-bottom"><xsl:value-of select="normalize-space($space-after)"/></xsl:attribute>
1537
+ </xsl:if>
1538
+ <fo:block>
1539
+ <xsl:if test="@level = 1">
1540
+ <!-- <xsl:attribute name="space-after">6pt</xsl:attribute> -->
1541
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
1542
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1543
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1544
+ <!-- <xsl:if test="@type = 'annex'">
1545
+ <xsl:attribute name="space-before">14pt</xsl:attribute>
1546
+ <xsl:attribute name="space-after">0pt</xsl:attribute>
1547
+ </xsl:if> -->
1548
+ </xsl:if>
1549
+ <xsl:if test="@level &gt;= 2 and not(@parent = 'annex')">
1550
+ <xsl:attribute name="font-size">10.5pt</xsl:attribute>
1551
+ </xsl:if>
1552
+ <xsl:if test="@level = 2">
1553
+ <xsl:attribute name="margin-left">8mm</xsl:attribute>
1554
+ </xsl:if>
1555
+ <xsl:if test="@level &gt; 2">
1556
+ <xsl:attribute name="margin-left">9mm</xsl:attribute>
1557
+ </xsl:if>
1558
+ <xsl:if test="@level &gt;= 2 and @parent = 'annex'">
1559
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
1560
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
1561
+ <xsl:attribute name="margin-left">25mm</xsl:attribute>
1562
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1563
+ </xsl:if>
1564
+
1565
+ <!-- <xsl:if test="@level = 2 and not(following-sibling::item[@display='true']) and not(item[@display='true'])">
1566
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
1567
+ </xsl:if>
1568
+ <xsl:if test="@level = 3 and not(following-sibling::item[@display='true']) and not(../following-sibling::item[@display='true'])">
1569
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
1570
+ </xsl:if> -->
1571
+
1572
+ <fo:list-block>
1573
+ <xsl:attribute name="provisional-distance-between-starts">
1574
+ <xsl:choose>
1575
+ <xsl:when test="@section = '' or @level &gt; 3">0mm</xsl:when>
1576
+ <xsl:when test="@level = 2 and @parent = 'annex'">0mm</xsl:when>
1577
+ <xsl:when test="@level = 2">8mm</xsl:when>
1578
+ <xsl:when test="@type = 'annex' and @level = 1">25mm</xsl:when>
1579
+ <xsl:otherwise>7mm</xsl:otherwise>
1580
+ </xsl:choose>
1581
+ </xsl:attribute>
1582
+
1583
+ <fo:list-item>
1584
+ <fo:list-item-label end-indent="label-end()">
1585
+ <fo:block>
1586
+ <xsl:if test="@level = 1 or (@level = 2 and not(@parent = 'annex'))">
1587
+ <xsl:value-of select="@section"/>
1588
+ </xsl:if>
1589
+ <!-- <fo:inline font-size="10pt" color="white">Z</fo:inline> --> <!-- for baseline alignment in string -->
1590
+ </fo:block>
1591
+ </fo:list-item-label>
1592
+ <fo:list-item-body start-indent="body-start()">
1593
+ <fo:block> <!-- text-align-last="justify" -->
1594
+ <xsl:if test="@level &gt;= 3">
1595
+ <xsl:attribute name="margin-left">11mm</xsl:attribute>
1596
+ <xsl:attribute name="text-indent">-11mm</xsl:attribute>
1597
+ </xsl:if>
1598
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
1599
+ <xsl:if test="@level &gt;= 3">
1600
+ <fo:inline padding-right="2mm"><xsl:value-of select="@section"/></fo:inline>
1601
+ </xsl:if>
1602
+ <xsl:variable name="sectionTitle">
1603
+ <xsl:apply-templates select="title"/>
1604
+ </xsl:variable>
1605
+ <fo:inline>
1606
+ <xsl:value-of select="$sectionTitle"/>
1607
+ </fo:inline>
1608
+ <!-- <xsl:text> </xsl:text> -->
1609
+ <!-- keep-together.within-line="always" -->
1610
+ <!-- <fo:inline >
1611
+ <fo:leader leader-pattern="space"/>
1612
+ <fo:inline font-family="Arial" font-weight="bold" font-size="10pt"><fo:page-number-citation ref-id="{@id}"/>35</fo:inline>
1613
+ </fo:inline> -->
1614
+ </fo:basic-link>
1615
+ </fo:block>
1616
+ </fo:list-item-body>
1617
+ </fo:list-item>
1618
+ </fo:list-block>
1619
+ </fo:block>
1620
+ </fo:table-cell>
1621
+ <fo:table-cell text-align="right">
1622
+ <xsl:if test="normalize-space($space-before) != ''">
1623
+ <xsl:attribute name="padding-top"><xsl:value-of select="normalize-space($space-before)"/></xsl:attribute>
1624
+ </xsl:if>
1625
+ <xsl:if test="normalize-space($space-after) != ''">
1626
+ <xsl:attribute name="padding-bottom"><xsl:value-of select="normalize-space($space-after)"/></xsl:attribute>
1627
+ </xsl:if>
1628
+ <fo:block>
1629
+ <fo:inline font-family="Arial" font-weight="bold" font-size="10pt"><fo:page-number-citation ref-id="{@id}"/></fo:inline>
1630
+ </fo:block>
1631
+ </fo:table-cell>
1632
+ </fo:table-row>
1215
1633
  </xsl:template>
1216
1634
 
1217
1635
 
@@ -1281,7 +1699,52 @@
1281
1699
  <xsl:template match="node()" mode="sections">
1282
1700
  <fo:page-sequence master-reference="document" force-page-count="no-force">
1283
1701
  <xsl:call-template name="insertFootnoteSeparator"/>
1284
- <xsl:call-template name="insertHeaderFooter"/>
1702
+
1703
+ <xsl:variable name="header-title">
1704
+ <xsl:choose>
1705
+
1706
+ <xsl:when test="local-name(..) = 'sections'">
1707
+ <xsl:choose>
1708
+ <xsl:when test="./bipm:title[1]/*[local-name() = 'tab']">
1709
+ <xsl:apply-templates select="./bipm:title[1]/*[local-name() = 'tab'][1]/following-sibling::node()" mode="header"/>
1710
+ </xsl:when>
1711
+ <xsl:otherwise>
1712
+ <xsl:apply-templates select="./bipm:title[1]" mode="header"/>
1713
+ </xsl:otherwise>
1714
+ </xsl:choose>
1715
+ </xsl:when>
1716
+
1717
+ <xsl:when test="local-name() = 'annex'">
1718
+ <xsl:choose>
1719
+ <xsl:when test="./*[1]/bipm:title[1]/*[local-name() = 'tab']">
1720
+ <xsl:variable name="title_annex">
1721
+ <xsl:value-of select="normalize-space(./*[1]/bipm:title[1]/*[local-name() = 'tab'][1]/preceding-sibling::node())"/>
1722
+ </xsl:variable>
1723
+ <xsl:choose>
1724
+ <xsl:when test="substring($title_annex, string-length($title_annex)) = '.'">
1725
+ <xsl:value-of select="substring($title_annex, 1, string-length($title_annex) - 1)"/>
1726
+ </xsl:when>
1727
+ <xsl:otherwise>
1728
+ <xsl:value-of select="$title_annex"/>
1729
+ </xsl:otherwise>
1730
+ </xsl:choose>
1731
+ </xsl:when>
1732
+ <xsl:otherwise>
1733
+ <xsl:apply-templates select="./*[1]/bipm:title[1]" mode="header"/>
1734
+ </xsl:otherwise>
1735
+ </xsl:choose>
1736
+ </xsl:when>
1737
+
1738
+ <xsl:otherwise>
1739
+ <xsl:apply-templates select="./bipm:title[1]" mode="header"/>
1740
+ </xsl:otherwise>
1741
+
1742
+ </xsl:choose>
1743
+ </xsl:variable>
1744
+ <xsl:call-template name="insertHeaderFooter">
1745
+ <xsl:with-param name="header-title" select="$header-title"/>
1746
+ </xsl:call-template>
1747
+
1285
1748
  <fo:flow flow-name="xsl-region-body">
1286
1749
  <fo:block line-height="125%">
1287
1750
  <xsl:apply-templates select="."/>
@@ -1290,6 +1753,34 @@
1290
1753
  </fo:page-sequence>
1291
1754
  </xsl:template>
1292
1755
 
1756
+ <xsl:template name="sections_appendix">
1757
+ <fo:page-sequence master-reference="document" force-page-count="no-force">
1758
+ <xsl:call-template name="insertFootnoteSeparator"/>
1759
+
1760
+ <xsl:variable name="curr_lang" select="/bipm:bipm-standard/bipm:bibdata/bipm:language[@current = 'true']"/>
1761
+
1762
+ <xsl:variable name="header-title">
1763
+ <xsl:choose>
1764
+ <xsl:when test="$lang = 'fr'">Annexe </xsl:when>
1765
+ <xsl:otherwise>Appendix </xsl:otherwise>
1766
+ </xsl:choose>
1767
+ <xsl:value-of select="/bipm:bipm-standard/bipm:bibdata/bipm:ext/bipm:structuredidentifier/bipm:appendix"/>
1768
+ </xsl:variable>
1769
+ <xsl:call-template name="insertHeaderFooter">
1770
+ <xsl:with-param name="header-title" select="$header-title"/>
1771
+ </xsl:call-template>
1772
+
1773
+ <fo:flow flow-name="xsl-region-body">
1774
+ <fo:block line-height="125%">
1775
+
1776
+ <xsl:for-each select=" bipm:sections/*">
1777
+ <xsl:apply-templates select="."/>
1778
+ </xsl:for-each>
1779
+ </fo:block>
1780
+ </fo:flow>
1781
+ </fo:page-sequence>
1782
+ </xsl:template>
1783
+
1293
1784
  <xsl:template match="bipm:bipm-standard/bipm:bibdata/bipm:edition">
1294
1785
  <xsl:param name="font-size" select="'65%'"/>
1295
1786
  <xsl:param name="baseline-shift" select="'30%'"/>
@@ -1328,7 +1819,7 @@
1328
1819
  </xsl:template>
1329
1820
 
1330
1821
  <xsl:template match="bipm:license-statement">
1331
- <fo:block font-size="10.6pt" font-family="Times New Roman">
1822
+ <fo:block font-size="10.5pt" font-family="Times New Roman">
1332
1823
  <xsl:apply-templates/>
1333
1824
  </fo:block>
1334
1825
  </xsl:template>
@@ -1395,6 +1886,7 @@
1395
1886
  <xsl:when test="$level = 2 and ancestor::bipm:annex">10.5pt</xsl:when>
1396
1887
  <xsl:when test="$level = 2">14pt</xsl:when>
1397
1888
  <xsl:when test="$level = 3 and ancestor::bipm:annex">10pt</xsl:when>
1889
+ <xsl:when test="$level = 4 and ancestor::bipm:annex">9pt</xsl:when>
1398
1890
  <xsl:when test="$level = 3">12pt</xsl:when>
1399
1891
  <xsl:otherwise>11pt</xsl:otherwise>
1400
1892
  </xsl:choose>
@@ -1409,32 +1901,47 @@
1409
1901
  </xsl:variable>
1410
1902
 
1411
1903
  <fo:block-container margin-left="-14mm" font-family="Arial" font-size="{$font-size}" font-weight="bold" keep-with-next="always" line-height="130%"> <!-- line-height="145%" -->
1904
+ <xsl:if test="local-name(preceding-sibling::*[1]) = 'clause'">
1905
+ <xsl:attribute name="id"><xsl:value-of select="preceding-sibling::*[1]/@id"/></xsl:attribute>
1906
+ </xsl:if>
1412
1907
  <xsl:attribute name="margin-bottom">
1413
1908
  <xsl:choose>
1414
- <xsl:when test="$level = 1 and (parent::bipm:annex or parent::bipm:abstract or ancestor::bipm:preface)">84pt</xsl:when>
1909
+ <xsl:when test="$level = 1 and (parent::bipm:annex or ancestor::bipm:annex or parent::bipm:abstract or ancestor::bipm:preface)">84pt</xsl:when>
1415
1910
  <xsl:when test="$level = 1">6pt</xsl:when>
1416
- <xsl:when test="$level = 2 and ancestor::bipm:annex">6pt</xsl:when>
1911
+ <xsl:when test="$level = 2 and ancestor::bipm:annex">6pt</xsl:when> <!-- 6pt 12pt -->
1417
1912
  <!-- <xsl:when test="$level = 2 and $independentAppendix != ''">6pt</xsl:when> -->
1418
1913
  <xsl:when test="$level = 2">10pt</xsl:when>
1419
1914
  <xsl:otherwise>6pt</xsl:otherwise>
1420
1915
  </xsl:choose>
1421
1916
  </xsl:attribute>
1422
1917
  <!-- <xsl:if test="$level = 1 and $independentAppendix != ''">
1423
- <xsl:attribute name="margin-top">24pt</xsl:attribute>
1424
- </xsl:if>
1425
- <xsl:if test="$level = 2 and $independentAppendix != ''">
1918
+ <xsl:attribute name="space-before">24pt</xsl:attribute>
1919
+ </xsl:if> -->
1920
+ <!-- <xsl:if test="$level = 2 and $independentAppendix != ''">
1426
1921
  <xsl:attribute name="margin-top">36pt</xsl:attribute>
1427
1922
  </xsl:if> -->
1428
- <xsl:if test="$level = 2">
1429
- <xsl:attribute name="margin-top">24pt</xsl:attribute>
1923
+ <xsl:if test="$level = 2 and ancestor::bipm:annex">
1924
+ <!-- <xsl:attribute name="margin-top">24pt</xsl:attribute> -->
1925
+ <xsl:attribute name="space-before">18pt</xsl:attribute> <!-- 24 pt -->
1926
+ </xsl:if>
1927
+ <xsl:if test="$level = 2 and not(ancestor::bipm:annex)">
1928
+ <xsl:attribute name="space-before">30pt</xsl:attribute>
1929
+ </xsl:if>
1930
+ <xsl:if test="$level = 3 and ancestor::bipm:annex">
1931
+ <xsl:attribute name="space-before">12pt</xsl:attribute> <!-- 6pt -->
1932
+ </xsl:if>
1933
+ <xsl:if test="$level = 4 and ancestor::bipm:annex">
1934
+ <xsl:attribute name="space-before">12pt</xsl:attribute>
1430
1935
  </xsl:if>
1431
1936
  <xsl:if test="$level = 3 and not(ancestor::bipm:annex)">
1432
- <xsl:attribute name="margin-top">20pt</xsl:attribute>
1937
+ <!-- <xsl:attribute name="margin-top">20pt</xsl:attribute> -->
1938
+ <xsl:attribute name="space-before">20pt</xsl:attribute>
1433
1939
  </xsl:if>
1434
1940
 
1435
1941
  <fo:block-container margin-left="0mm">
1436
1942
 
1437
- <xsl:if test="$level = 1">
1943
+ <!-- marker not working for math -->
1944
+ <!-- <xsl:if test="$level = 1">
1438
1945
  <fo:marker marker-class-name="header-title">
1439
1946
  <xsl:choose>
1440
1947
  <xsl:when test="*[local-name() = 'tab']">
@@ -1445,7 +1952,7 @@
1445
1952
  </xsl:otherwise>
1446
1953
  </xsl:choose>
1447
1954
  </fo:marker>
1448
- </xsl:if>
1955
+ </xsl:if> -->
1449
1956
 
1450
1957
  <xsl:choose>
1451
1958
  <xsl:when test="*[local-name() = 'tab'] and not(ancestor::bipm:annex) "><!-- split number and title --> <!-- and $independentAppendix = '' -->
@@ -1485,6 +1992,10 @@
1485
1992
  </fo:instream-foreign-object>
1486
1993
  </fo:inline>
1487
1994
  </xsl:if>
1995
+ <xsl:if test="$level = 4">
1996
+ <xsl:attribute name="margin-left">14mm</xsl:attribute>
1997
+ <xsl:attribute name="text-align">center</xsl:attribute>
1998
+ </xsl:if>
1488
1999
  <xsl:call-template name="extractTitle"/>
1489
2000
  </xsl:when>
1490
2001
  <xsl:otherwise>
@@ -1518,7 +2029,7 @@
1518
2029
  </xsl:template>
1519
2030
 
1520
2031
  <xsl:template match="*[local-name() = 'stem']" mode="header">
1521
- <xsl:apply-templates select="."/>
2032
+ <xsl:apply-templates/>
1522
2033
  </xsl:template>
1523
2034
 
1524
2035
  <xsl:template match="*[local-name() = 'br']" mode="header">
@@ -1689,123 +2200,100 @@
1689
2200
  <xsl:template match="bipm:sections/bipm:clause | bipm:annex/bipm:clause" priority="3">
1690
2201
  <!-- <xsl:choose>
1691
2202
  <xsl:when test="$independentAppendix = ''"> -->
1692
- <fo:table table-layout="fixed" width="174mm" line-height="135%">
1693
- <xsl:call-template name="setId"/>
1694
- <fo:table-column column-width="137mm"/>
1695
- <fo:table-column column-width="5mm"/>
1696
- <fo:table-column column-width="32mm"/>
1697
- <fo:table-body>
1698
-
1699
- <xsl:variable name="rows2">
1700
- <xsl:for-each select="*">
1701
- <xsl:variable name="position" select="position()"/>
1702
- <!-- if this is first element -->
1703
- <xsl:variable name="isFirstRow" select="not(preceding-sibling::*)"/>
1704
- <!-- first element without note -->
1705
- <xsl:variable name="isFirstCellAfterNote" select="$isFirstRow = true() or count(preceding-sibling::*[1][.//bipm:note]) = 1"/>
1706
- <xsl:variable name="curr_id" select="generate-id()"/>
1707
- <xsl:variable name="rowsUntilNote" select="count(following-sibling::*[.//bipm:note][1]/preceding-sibling::*[preceding-sibling::*[generate-id() = $curr_id]])"/>
1708
-
1709
- <num display-align="after">
1710
- <xsl:if test="$isFirstCellAfterNote = true()">
1711
- <xsl:attribute name="span_start">
1712
- <xsl:value-of select="$position"/>
1713
- </xsl:attribute>
1714
- <xsl:attribute name="span_num">
1715
- <xsl:value-of select="$rowsUntilNote + 2"/>
1716
- </xsl:attribute>
1717
- <xsl:if test="count(following-sibling::*[.//bipm:note]) = 0"><!-- if there aren't notes more, then set -1 -->
1718
- <xsl:attribute name="span_start"><xsl:value-of select="$position"/>_no_more_notes</xsl:attribute>
1719
- </xsl:if>
1720
- <xsl:if test="count(following-sibling::*[.//bipm:note]) = 1"> <!-- if there is only one note, then set -1, because notes will be display near accoring text-->
1721
- <xsl:attribute name="span_start"><xsl:value-of select="$position"/>_last_note</xsl:attribute>
1722
- </xsl:if>
1723
- </xsl:if>
1724
-
1725
- <xsl:if test=".//bipm:note and count(following-sibling::*[.//bipm:note]) = 0"> <!-- if current row there is note, and no more notes below -->
1726
- <xsl:attribute name="span_start">
1727
- <xsl:value-of select="$position"/>
1728
- </xsl:attribute>
1729
- <xsl:attribute name="span_num">
1730
- <xsl:value-of select="count(following-sibling::*) + 1"/>
1731
- </xsl:attribute>
1732
- <xsl:attribute name="display-align">before</xsl:attribute>
1733
- </xsl:if>
1734
-
1735
- <xsl:if test=".//bipm:note and following-sibling::*[1][.//bipm:note] and preceding-sibling::*[1][.//bipm:note]">
1736
- <xsl:attribute name="span_start">
1737
- <xsl:value-of select="$position"/>
1738
- </xsl:attribute>
1739
- <xsl:attribute name="span_num">1</xsl:attribute>
1740
- <xsl:attribute name="display-align">before</xsl:attribute>
1741
- </xsl:if>
1742
-
1743
- <xsl:if test=".//bipm:note and preceding-sibling::*[1][.//bipm:note] and not(following-sibling::*[1][.//bipm:note])">
1744
- <xsl:attribute name="span_start">
1745
- <xsl:value-of select="$position"/>
1746
- </xsl:attribute>
1747
- <xsl:attribute name="span_num">1</xsl:attribute>
1748
- <xsl:attribute name="display-align">before</xsl:attribute>
1749
- </xsl:if>
1750
- </num>
1751
- </xsl:for-each>
1752
- </xsl:variable>
1753
-
1754
-
1755
- <xsl:variable name="total_rows" select="count(*)"/>
1756
-
1757
- <xsl:variable name="rows_with_notes">
1758
- <xsl:for-each select="*">
1759
- <!-- <xsl:if test=".//bipm:note[not(ancestor::bipm:table)]"> -->
1760
- <xsl:if test=".//bipm:note_side"> <!-- virtual element note_side --> <!-- [not(ancestor::bipm:table)] -->
1761
- <row_num><xsl:value-of select="position()"/></row_num>
1762
- </xsl:if>
1763
- </xsl:for-each>
1764
- </xsl:variable>
1765
- <!-- rows_with_notes<xsl:copy-of select="$rows_with_notes"/> -->
1766
-
1767
- <xsl:variable name="rows3">
1768
- <xsl:for-each select="xalan:nodeset($rows_with_notes)/row_num">
1769
- <xsl:variable name="num" select="number(.)"/>
1770
- <xsl:choose>
1771
- <xsl:when test="position() = 1">
1772
- <num span_start="1" span_num="{$num}" display-align="after"/>
1773
- </xsl:when>
1774
- <xsl:when test="position() = last()">
1775
- <num span_start="{$num}" span_num="{$total_rows - $num + 1}" display-align="before"/>
1776
- </xsl:when>
1777
- <xsl:otherwise><!-- 2nd, 3rd, ... Nth-1 -->
1778
- <xsl:variable name="prev_num" select="number(preceding-sibling::*/text())"/>
1779
- <num span_start="{$prev_num + 1}" span_num="{$num - $prev_num}" display-align="after"/>
1780
- </xsl:otherwise>
1781
- </xsl:choose>
1782
- </xsl:for-each>
1783
- </xsl:variable>
1784
-
1785
- <xsl:variable name="rows">
1786
- <xsl:for-each select="xalan:nodeset($rows_with_notes)/row_num">
1787
- <xsl:variable name="num" select="number(.)"/>
1788
- <xsl:choose>
1789
- <xsl:when test="position() = last()">
1790
- <num span_start="{$num}" span_num="{$total_rows - $num + 1}" display-align="before"/>
1791
- </xsl:when>
1792
- <xsl:otherwise><!-- 2nd, 3rd, ... Nth-1 -->
1793
- <xsl:variable name="next_num" select="number(following-sibling::*/text())"/>
1794
- <num span_start="{$num}" span_num="{$next_num - $num}" display-align="before"/>
1795
- </xsl:otherwise>
1796
- </xsl:choose>
1797
- </xsl:for-each>
1798
- </xsl:variable>
1799
-
1800
- <!-- rows=<xsl:copy-of select="$rows"/> -->
1801
-
1802
-
1803
- <xsl:apply-templates mode="clause_table">
1804
- <xsl:with-param name="rows" select="$rows"/>
1805
- </xsl:apply-templates>
1806
-
1807
- </fo:table-body>
1808
- </fo:table>
2203
+
2204
+ <xsl:variable name="space-before"> <!-- margin-top for title, see bipm:title -->
2205
+ <xsl:if test="local-name(*[1]) = 'title'">
2206
+ <xsl:if test="*[1]/@depth = 1 and not(*[1]/ancestor::bipm:annex) and $independentAppendix != ''">30pt</xsl:if>
2207
+ <xsl:if test="*[1]/@depth = 2 and not(*[1]/ancestor::bipm:annex)">30pt</xsl:if>
2208
+ <xsl:if test="*[1]/@depth = 2 and *[1]/ancestor::bipm:annex">18pt</xsl:if> <!-- 24pt -->
2209
+ <xsl:if test="*[1]/@depth = 3 and not(*[1]/ancestor::bipm:annex)">20pt</xsl:if>
2210
+ <xsl:if test="*[1]/@depth = 3 and *[1]/ancestor::bipm:annex">6pt</xsl:if> <!-- 6pt-->
2211
+ <xsl:if test="*[1]/@depth = 4 and *[1]/ancestor::bipm:annex">12pt</xsl:if> <!-- 6pt-->
2212
+ </xsl:if>
2213
+ </xsl:variable>
2214
+ <xsl:variable name="space-before-value" select="normalize-space($space-before)"/>
2215
+
2216
+ <fo:table table-layout="fixed" width="174mm" line-height="135%">
2217
+ <xsl:call-template name="setId"/>
2218
+ <xsl:if test="$space-before-value != ''">
2219
+ <xsl:attribute name="space-before"><xsl:value-of select="$space-before-value"/></xsl:attribute>
2220
+ </xsl:if>
2221
+ <fo:table-column column-width="137mm"/>
2222
+ <fo:table-column column-width="5mm"/>
2223
+ <fo:table-column column-width="32mm"/>
2224
+ <fo:table-body>
2225
+
2226
+ <xsl:variable name="total_rows" select="count(*)"/>
2227
+
2228
+ <xsl:variable name="rows_with_notes">
2229
+ <xsl:for-each select="*">
2230
+ <!-- <xsl:if test=".//bipm:note[not(ancestor::bipm:table)]"> -->
2231
+ <xsl:if test=".//bipm:note_side"> <!-- virtual element note_side --> <!-- [not(ancestor::bipm:table)] -->
2232
+ <row_num><xsl:value-of select="position()"/></row_num>
2233
+ </xsl:if>
2234
+ </xsl:for-each>
2235
+ </xsl:variable>
2236
+ <!-- rows_with_notes<xsl:copy-of select="$rows_with_notes"/> -->
2237
+
2238
+ <xsl:variable name="rows3">
2239
+ <xsl:for-each select="xalan:nodeset($rows_with_notes)/row_num">
2240
+ <xsl:variable name="num" select="number(.)"/>
2241
+ <xsl:choose>
2242
+ <xsl:when test="position() = 1">
2243
+ <num span_start="1" span_num="{$num}" display-align="after"/>
2244
+ </xsl:when>
2245
+ <xsl:when test="position() = last()">
2246
+ <num span_start="{$num}" span_num="{$total_rows - $num + 1}" display-align="before"/>
2247
+ </xsl:when>
2248
+ <xsl:otherwise><!-- 2nd, 3rd, ... Nth-1 -->
2249
+ <xsl:variable name="prev_num" select="number(preceding-sibling::*/text())"/>
2250
+ <num span_start="{$prev_num + 1}" span_num="{$num - $prev_num}" display-align="after"/>
2251
+ </xsl:otherwise>
2252
+ </xsl:choose>
2253
+ </xsl:for-each>
2254
+ </xsl:variable>
2255
+
2256
+ <xsl:variable name="rows">
2257
+
2258
+ <xsl:variable name="first_num" select="normalize-space(xalan:nodeset($rows_with_notes)/row_num[1])"/>
2259
+ <xsl:choose>
2260
+ <xsl:when test="$first_num = ''">
2261
+ <num span_start="1" span_num="{$total_rows}" display-align="before"/>
2262
+ </xsl:when>
2263
+ <xsl:when test="number($first_num) != 1">
2264
+ <num span_start="1" span_num="{$first_num -1}" display-align="before"/>
2265
+ </xsl:when>
2266
+ </xsl:choose>
2267
+
2268
+ <xsl:for-each select="xalan:nodeset($rows_with_notes)/row_num">
2269
+ <xsl:variable name="num" select="number(.)"/>
2270
+ <xsl:choose>
2271
+ <xsl:when test="position() = last()">
2272
+ <num span_start="{$num}" span_num="{$total_rows - $num + 1}" display-align="before"/>
2273
+ </xsl:when>
2274
+ <xsl:otherwise><!-- 2nd, 3rd, ... Nth-1 -->
2275
+ <xsl:variable name="next_num" select="number(following-sibling::*/text())"/>
2276
+ <num span_start="{$num}" span_num="{$next_num - $num}" display-align="before"/>
2277
+ </xsl:otherwise>
2278
+ </xsl:choose>
2279
+ </xsl:for-each>
2280
+ </xsl:variable>
2281
+
2282
+ <!-- rows=<xsl:copy-of select="$rows"/> -->
2283
+
2284
+ <!-- updated strategy: consolidated show all block with note, instead of spanned rows -->
2285
+
2286
+ <xsl:call-template name="insertClauses">
2287
+ <xsl:with-param name="rows" select="$rows"/>
2288
+ </xsl:call-template>
2289
+
2290
+
2291
+ <!-- <xsl:apply-templates mode="clause_table">
2292
+ <xsl:with-param name="rows" select="$rows"/>
2293
+ </xsl:apply-templates> -->
2294
+
2295
+ </fo:table-body>
2296
+ </fo:table>
1809
2297
 
1810
2298
  <!-- </xsl:when>
1811
2299
  <xsl:otherwise>
@@ -1819,6 +2307,78 @@
1819
2307
  </xsl:template>
1820
2308
 
1821
2309
 
2310
+ <xsl:template name="insertClauses">
2311
+ <xsl:param name="rows"/>
2312
+ <xsl:param name="curr_row_num" select="1"/>
2313
+
2314
+ <xsl:if test="$curr_row_num &lt;= count(xalan:nodeset($rows)/num)">
2315
+ <xsl:variable name="start_row" select="xalan:nodeset($rows)/num[$curr_row_num]/@span_start"/>
2316
+ <xsl:variable name="end_row" select="$start_row + xalan:nodeset($rows)/num[$curr_row_num]/@span_num - 1"/>
2317
+ <fo:table-row> <!-- DEBUG border-top="1.5pt solid blue" border-bottom="1.5pt solid blue" -->
2318
+ <xsl:if test="local-name(*[$end_row]) = 'title'"> <!-- if last element is title, then keep row with next--> <!-- or local-name(*[$end_row]) = 'clause' or clause, then keep row with next -->
2319
+ <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
2320
+ </xsl:if>
2321
+
2322
+
2323
+ <xsl:variable name="start_row_next" select="normalize-space(xalan:nodeset($rows)/num[$curr_row_num + 1]/@span_start)"/>
2324
+ <xsl:variable name="start_row_next_num" select="number($start_row_next)"/>
2325
+
2326
+ <xsl:variable name="table-row-padding-bottom">
2327
+ <xsl:if test="$start_row_next != '' and local-name(*[$start_row_next_num]) = 'title'">
2328
+ <xsl:if test="*[$start_row_next_num]/@depth = 2 and not(*[$start_row_next_num]/ancestor::bipm:annex)">30pt</xsl:if>
2329
+ <xsl:if test="*[$start_row_next_num]/@depth = 2 and *[$start_row_next_num]/ancestor::bipm:annex">18pt</xsl:if> <!-- 24pt -->
2330
+ <!-- <xsl:attribute name="padding-bottom">20pt</xsl:attribute> -->
2331
+ <xsl:if test="*[$start_row_next_num]/@depth = 3 and not(*[$start_row_next_num]/ancestor::bipm:annex)">20pt</xsl:if>
2332
+ <xsl:if test="*[$start_row_next_num]/@depth = 3 and *[$start_row_next_num]/ancestor::bipm:annex">6pt</xsl:if> <!-- 6pt -->
2333
+ <xsl:if test="*[$start_row_next_num]/@depth = 4 and *[$start_row_next_num]/ancestor::bipm:annex">12pt</xsl:if> <!-- 6pt -->
2334
+ </xsl:if>
2335
+ </xsl:variable>
2336
+
2337
+ <xsl:variable name="table-row-padding-bottom-value" select="normalize-space($table-row-padding-bottom)"/>
2338
+
2339
+ <fo:table-cell>
2340
+
2341
+ <xsl:if test="$table-row-padding-bottom-value != ''">
2342
+ <xsl:attribute name="padding-bottom"><xsl:value-of select="$table-row-padding-bottom-value"/></xsl:attribute>
2343
+ </xsl:if>
2344
+
2345
+ <!-- <fo:block>$end_row=<xsl:value-of select="$end_row"/>,local-name(*[$end_row])=<xsl:value-of select="local-name(*[$end_row]) "/></fo:block> -->
2346
+
2347
+ <fo:block>
2348
+ <!-- insert elements from sections/clause annex/clause -->
2349
+ <xsl:apply-templates select="*[position() &gt;= number($start_row) and position() &lt;= $end_row]"/>
2350
+ </fo:block>
2351
+ </fo:table-cell>
2352
+ <fo:table-cell>
2353
+ <xsl:if test="$table-row-padding-bottom-value != ''">
2354
+ <xsl:attribute name="padding-bottom"><xsl:value-of select="$table-row-padding-bottom-value"/></xsl:attribute>
2355
+ </xsl:if>
2356
+ <fo:block> </fo:block>
2357
+ </fo:table-cell> <!-- <fo:block/> <fo:block>&#xA0;</fo:block> -->
2358
+ <fo:table-cell font-size="8pt" line-height="120%" display-align="before" padding-bottom="6pt">
2359
+ <xsl:if test="$table-row-padding-bottom-value != ''">
2360
+ <xsl:attribute name="padding-bottom"><xsl:value-of select="$table-row-padding-bottom-value"/></xsl:attribute>
2361
+ </xsl:if>
2362
+
2363
+ <xsl:attribute name="display-align">
2364
+ <xsl:value-of select="xalan:nodeset($rows)/num[$curr_row_num]/@display-align"/>
2365
+ </xsl:attribute>
2366
+
2367
+ <fo:block>
2368
+ <xsl:for-each select="*[position() &gt;= $start_row and position() &lt;= $end_row]//bipm:note_side">
2369
+ <xsl:apply-templates select="." mode="note_side"/>
2370
+ </xsl:for-each>
2371
+ </fo:block>
2372
+ </fo:table-cell>
2373
+ </fo:table-row>
2374
+ <xsl:call-template name="insertClauses">
2375
+ <xsl:with-param name="rows" select="$rows"/>
2376
+ <xsl:with-param name="curr_row_num" select="$curr_row_num + 1"/>
2377
+ </xsl:call-template>
2378
+ </xsl:if>
2379
+
2380
+ </xsl:template>
2381
+
1822
2382
  <xsl:template match="bipm:sections/bipm:clause/* | bipm:annex/bipm:clause/*" mode="clause_table">
1823
2383
  <xsl:param name="rows"/>
1824
2384
 
@@ -1826,35 +2386,13 @@
1826
2386
  <xsl:variable name="current_row"><xsl:number count="*"/></xsl:variable>
1827
2387
 
1828
2388
 
1829
- <fo:table-row> <!-- border="1pt solid black" -->
1830
- <fo:table-cell> <!-- border="1pt solid black" -->
2389
+ <fo:table-row> <!-- border="1pt solid black" -->
2390
+ <fo:table-cell> <!-- border="1pt solid black" -->
1831
2391
  <fo:block>
1832
- <xsl:apply-templates select="."/>
2392
+ <xsl:apply-templates select="."/>
1833
2393
  </fo:block>
1834
2394
  </fo:table-cell>
1835
- <fo:table-cell><fo:block> </fo:block></fo:table-cell>
1836
-
1837
-
1838
- <!-- DEBUG -->
1839
- <!-- <fo:table-cell font-size="8pt" line-height="120%" display-align="before" padding-bottom="6pt">
1840
-
1841
- <xsl:variable name="number-rows-spanned" select="xalan:nodeset($rows)/num[@span_start = $current_row]/@span_num"/>
1842
-
1843
-
1844
- <xsl:variable name="start_row" select="$current_row"/>
1845
-
1846
- <xsl:if test=".//bipm:note">
1847
- <fo:block>Note</fo:block>
1848
- </xsl:if>
1849
- <fo:block font-size="6pt" color="red">
1850
- <fo:block>current_row=<xsl:value-of select="$current_row"/></fo:block>
1851
- <xsl:for-each select="xalan:nodeset($rows)/num">
1852
- <fo:block>span_start=<xsl:value-of select="@span_start"/></fo:block>
1853
- <fo:block>span_num=<xsl:value-of select="@span_num"/></fo:block>
1854
- </xsl:for-each>
1855
- </fo:block>
1856
-
1857
- </fo:table-cell> -->
2395
+ <fo:table-cell><fo:block> </fo:block></fo:table-cell> <!-- <fo:block/> <fo:block>&#xA0;</fo:block> -->
1858
2396
 
1859
2397
 
1860
2398
  <xsl:if test="xalan:nodeset($rows)/num[@span_start = $current_row]">
@@ -1885,27 +2423,38 @@
1885
2423
 
1886
2424
  </fo:table-cell>
1887
2425
  </xsl:if>
1888
-
1889
-
1890
- <!--
1891
- <xsl:choose>
1892
- <xsl:when test=".//bipm:note">
1893
- <fo:table-cell font-size="8pt" line-height="120%">
1894
- <xsl:variable name="curr_id" select="@id"/>
1895
- <xsl:attribute name="number-rows-spanned">
1896
- <xsl:value-of select="count(following-sibling::*[.//bipm:note][1]/preceding-sibling::*[preceding-sibling::*[@id = $curr_id]]) + 1"/>
1897
- </xsl:attribute>
2426
+
2427
+ </fo:table-row>
2428
+ </xsl:template>
2429
+
2430
+ <!-- from common.xsl -->
2431
+ <xsl:template match="*[local-name() = 'clause']" priority="2">
2432
+ <xsl:choose>
2433
+ <xsl:when test="count(./node()) = 0"> <!-- if empty clause, then move id into next title -->
2434
+ <xsl:choose>
2435
+ <xsl:when test="local-name(following-sibling::*[1]) = 'title'"/> <!-- id will set in title -->
2436
+ <xsl:otherwise>
1898
2437
  <fo:block>
1899
- <xsl:for-each select=".//bipm:note">
1900
- <xsl:apply-templates select="." mode="note_side"/>
1901
- </xsl:for-each>
2438
+ <xsl:call-template name="setId"/>
2439
+ <xsl:apply-templates/>
1902
2440
  </fo:block>
1903
- </fo:table-cell>
1904
- </xsl:when>
1905
- </xsl:choose> -->
1906
- </fo:table-row>
2441
+ </xsl:otherwise>
2442
+ </xsl:choose>
2443
+ </xsl:when>
2444
+ <xsl:otherwise>
2445
+ <fo:block>
2446
+ <xsl:call-template name="setId"/>
2447
+ <xsl:apply-templates/>
2448
+ </fo:block>
2449
+ </xsl:otherwise>
2450
+ </xsl:choose>
2451
+
2452
+ <!-- <xsl:if test="$namespace = 'bipm'">
2453
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2454
+ </xsl:if> -->
1907
2455
  </xsl:template>
1908
2456
 
2457
+
1909
2458
  <!-- skip, because it process in note_side template -->
1910
2459
  <!-- <xsl:template match="bipm:preface/bipm:abstract//bipm:note[not(ancestor::bipm:table)]" priority="3"/> -->
1911
2460
  <!-- <xsl:template match="bipm:preface/bipm:abstract//bipm:note_side" priority="3"/> -->
@@ -1924,8 +2473,23 @@
1924
2473
 
1925
2474
  <!-- <xsl:template match="bipm:note" mode="note_side"> -->
1926
2475
  <xsl:template match="bipm:note_side" mode="note_side">
1927
- <fo:block line-height-shift-adjustment="disregard-shifts">
1928
- <xsl:if test="ancestor::bipm:title"><fo:inline>* </fo:inline></xsl:if>
2476
+ <fo:block line-height-shift-adjustment="disregard-shifts" space-after="4pt">
2477
+ <xsl:call-template name="setId"/>
2478
+
2479
+ <xsl:if test="ancestor::bipm:table"><!-- move table note lower than title -->
2480
+ <xsl:variable name="table_id" select="ancestor::bipm:table[1]/@id"/>
2481
+ <xsl:variable name="num">
2482
+ <xsl:number count="//bipm:table[@id = $table_id]//bipm:note_side" level="any"/>
2483
+ </xsl:variable>
2484
+ <xsl:if test="$num = 1 and ancestor::bipm:table[1]/bipm:name/bipm:tab">
2485
+ <xsl:attribute name="margin-top">48pt</xsl:attribute>
2486
+ </xsl:if>
2487
+ <!-- <fo:inline>num=<xsl:value-of select="$num"/></fo:inline> -->
2488
+ </xsl:if>
2489
+
2490
+ <!-- if note relates to title, but not fn -->
2491
+ <xsl:if test="ancestor::bipm:title and not(bipm:sup_fn)"><fo:inline>* </fo:inline></xsl:if>
2492
+
1929
2493
  <xsl:apply-templates mode="note_side"/>
1930
2494
  </fo:block>
1931
2495
  </xsl:template>
@@ -1964,7 +2528,7 @@
1964
2528
  <xsl:number count="bipm:fn[not(ancestor::bipm:table)]" level="any"/>
1965
2529
  </xsl:variable>
1966
2530
  <xsl:variable name="gen_id" select="generate-id()"/>
1967
- <xsl:variable name="lang" select="ancestor::bipm:bipm-standard/*[local-name()='bibdata']//*[local-name()='language']"/>
2531
+ <xsl:variable name="lang" select="ancestor::bipm:bipm-standard/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
1968
2532
  <fo:inline font-size="65%" keep-with-previous.within-line="always" vertical-align="super">
1969
2533
  <fo:basic-link internal-destination="{$lang}_footnote_{@reference}_{$number}_{$gen_id}" fox:alt-text="footnote {@reference}">
1970
2534
  <xsl:value-of select="$number"/><!-- + count(//bipm:bibitem/bipm:note) -->
@@ -2014,6 +2578,7 @@
2014
2578
  <xsl:otherwise>justify</xsl:otherwise>
2015
2579
  </xsl:choose>
2016
2580
  </xsl:attribute>
2581
+ <xsl:copy-of select="@font-family"/>
2017
2582
  <xsl:if test="not(ancestor::bipm:table)">
2018
2583
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2019
2584
  </xsl:if>
@@ -2029,6 +2594,9 @@
2029
2594
  <xsl:if test="@align = 'center'">
2030
2595
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
2031
2596
  </xsl:if>
2597
+ <xsl:if test="local-name(*[1]) = 'strong' and normalize-space(.) = normalize-space(*[1])">
2598
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2599
+ </xsl:if>
2032
2600
  <xsl:if test="@parent-type = 'quote'">
2033
2601
  <xsl:attribute name="font-family">Arial</xsl:attribute>
2034
2602
  <xsl:attribute name="font-size">9pt</xsl:attribute>
@@ -2069,18 +2637,31 @@
2069
2637
 
2070
2638
  <!-- process list item as individual list --> <!-- flat list -->
2071
2639
  <xsl:template match="bipm:li">
2072
- <fo:block-container margin-left="0mm">
2640
+ <fo:block-container margin-left="0mm"> <!-- debug: border="0.5pt solid black" -->
2073
2641
  <xsl:if test="ancestor::bipm:li">
2074
- <xsl:attribute name="margin-left">7mm</xsl:attribute>
2642
+ <xsl:attribute name="margin-left">6.5mm</xsl:attribute><!-- 8 mm -->
2075
2643
  </xsl:if>
2076
2644
  <xsl:if test="@parent-type = 'quote'">
2077
2645
  <xsl:attribute name="font-family">Arial</xsl:attribute>
2078
2646
  <xsl:attribute name="font-size">9pt</xsl:attribute>
2079
2647
  <xsl:attribute name="line-height">130%</xsl:attribute>
2080
2648
  </xsl:if>
2649
+
2650
+ <!-- last item -->
2651
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'li'])">
2652
+ <xsl:attribute name="space-after">6pt</xsl:attribute>
2653
+ <xsl:if test="../ancestor::bipm:ul | ../ancestor::bipm:ol">
2654
+ <xsl:attribute name="space-after">0pt</xsl:attribute>
2655
+ </xsl:if>
2656
+ <xsl:if test="../following-sibling::*[1][local-name() = 'ul' or local-name() = 'ol']">
2657
+ <xsl:attribute name="space-after">0pt</xsl:attribute>
2658
+ </xsl:if>
2659
+ </xsl:if>
2660
+
2081
2661
  <fo:block-container margin-left="0mm">
2082
- <fo:list-block provisional-distance-between-starts="8mm">
2083
- <xsl:if test="not(following-sibling::*[1][local-name() = 'li'])"> <!-- last item -->
2662
+ <fo:list-block provisional-distance-between-starts="6.5mm"> <!-- debug: border="0.5pt solid blue" -->
2663
+ <!-- last item -->
2664
+ <!-- <xsl:if test="not(following-sibling::*[1][local-name() = 'li'])">
2084
2665
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2085
2666
  <xsl:if test="../ancestor::bipm:ul | ../ancestor::bipm:ol">
2086
2667
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
@@ -2088,7 +2669,7 @@
2088
2669
  <xsl:if test="../following-sibling::*[1][local-name() = 'ul' or local-name() = 'ol']">
2089
2670
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
2090
2671
  </xsl:if>
2091
- </xsl:if>
2672
+ </xsl:if> -->
2092
2673
  <!-- <xsl:if test="../ancestor::bipm:note"> -->
2093
2674
  <xsl:if test="ancestor::bipm:note_side">
2094
2675
  <xsl:attribute name="provisional-distance-between-starts">0mm</xsl:attribute>
@@ -2096,10 +2677,12 @@
2096
2677
 
2097
2678
  <fo:list-item id="{@id}">
2098
2679
  <fo:list-item-label end-indent="label-end()">
2099
- <fo:block>
2680
+ <fo:block> <!-- debug: border="0.5pt solid green" -->
2100
2681
  <fo:inline>
2101
- <xsl:if test="@list_type = 'ul'">
2102
- <xsl:attribute name="font-size">15pt</xsl:attribute>
2682
+ <!-- <xsl:if test="@list_type = 'ul'">
2683
+ <xsl:attribute name="font-size">15pt</xsl:attribute> -->
2684
+ <xsl:if test="@font-size">
2685
+ <xsl:attribute name="font-size"><xsl:value-of select="@font-size"/></xsl:attribute>
2103
2686
  <!-- <xsl:attribute name="baseline-shift">-10%</xsl:attribute> -->
2104
2687
  </xsl:if>
2105
2688
  <xsl:value-of select="@label"/>
@@ -2129,7 +2712,7 @@
2129
2712
  </fo:block>
2130
2713
  </fo:list-item-label>
2131
2714
  <fo:list-item-body start-indent="body-start()" line-height-shift-adjustment="disregard-shifts">
2132
- <fo:block margin-bottom="0pt">
2715
+ <fo:block margin-bottom="0pt"> <!-- debug: border="0.5pt solid red" -->
2133
2716
  <xsl:if test="@list_type = 'ol'">
2134
2717
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2135
2718
  </xsl:if>
@@ -2147,6 +2730,10 @@
2147
2730
  </fo:block-container>
2148
2731
  </fo:block-container>
2149
2732
 
2733
+ <xsl:if test="not(following-sibling::*[1][local-name() = 'li']) and not(../ancestor::bipm:ul | ../ancestor::bipm:ol) and not (../following-sibling::*[1][local-name() = 'ul' or local-name() = 'ol'])">
2734
+ <fo:block/>
2735
+ </xsl:if>
2736
+
2150
2737
  </xsl:template>
2151
2738
 
2152
2739
  <xsl:template match="bipm:ul2/bipm:note | bipm:ol2/bipm:note" priority="2">
@@ -2219,7 +2806,8 @@
2219
2806
  <xsl:if test=".//bipm:fn">
2220
2807
  <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
2221
2808
  </xsl:if>
2222
- <xsl:call-template name="processBibitem"/>
2809
+ <!-- <xsl:call-template name="processBibitem"/> -->
2810
+ <xsl:apply-templates/>
2223
2811
  </fo:block>
2224
2812
  </xsl:template>
2225
2813
 
@@ -2277,7 +2865,8 @@
2277
2865
  </fo:list-item-label>
2278
2866
  <fo:list-item-body start-indent="body-start()">
2279
2867
  <fo:block>
2280
- <xsl:call-template name="processBibitem"/>
2868
+ <!-- <xsl:call-template name="processBibitem"/> -->
2869
+ <xsl:apply-templates/>
2281
2870
  </fo:block>
2282
2871
  </fo:list-item-body>
2283
2872
  </fo:list-item>
@@ -2322,13 +2911,10 @@
2322
2911
  <xsl:when test="starts-with(normalize-space(following-sibling::node()[1]), ')')">
2323
2912
  <!-- add , see p. N -->
2324
2913
  <!-- add , voir p. N -->
2325
- <xsl:apply-templates/>
2326
- <xsl:variable name="curr_lang" select="ancestor::bipm:bipm-standard/bipm:bibdata/bipm:language"/>
2914
+ <xsl:apply-templates/>
2327
2915
  <xsl:text>, </xsl:text>
2328
- <xsl:choose>
2329
- <xsl:when test="$curr_lang = 'fr'">voir</xsl:when>
2330
- <xsl:otherwise>see</xsl:otherwise>
2331
- </xsl:choose>
2916
+ <xsl:variable name="curr_lang" select="ancestor::bipm:bipm-standard/bipm:bibdata/bipm:language[@current = 'true']"/>
2917
+ <xsl:value-of select="ancestor::bipm:bipm-standard/bipm:localized-strings/bipm:localized-string[@key='see' and @language=$curr_lang]"/>
2332
2918
  <xsl:text> p. </xsl:text>
2333
2919
  <fo:page-number-citation ref-id="{@target}"/>
2334
2920
  </xsl:when>
@@ -2342,9 +2928,14 @@
2342
2928
  <xsl:template match="bipm:note[not(ancestor::bipm:preface)]/bipm:name" priority="2" mode="presentation">
2343
2929
  <xsl:choose>
2344
2930
  <xsl:when test="not(../preceding-sibling::bipm:note) and not((../following-sibling::bipm:note))">
2345
- <xsl:variable name="curr_lang" select="ancestor::bipm:bipm-standard/bipm:bibdata/bipm:language"/>
2931
+ <xsl:variable name="curr_lang" select="ancestor::bipm:bipm-standard/bipm:bibdata/bipm:language[@current = 'true']"/>
2346
2932
  <xsl:choose>
2347
- <xsl:when test="$curr_lang = 'fr'">Remarque: </xsl:when>
2933
+ <xsl:when test="$curr_lang = 'fr'">
2934
+ <xsl:choose>
2935
+ <xsl:when test="ancestor::bipm:li">Remarque: </xsl:when>
2936
+ <xsl:otherwise>Note: </xsl:otherwise>
2937
+ </xsl:choose>
2938
+ </xsl:when>
2348
2939
  <xsl:otherwise>Note: </xsl:otherwise>
2349
2940
  </xsl:choose>
2350
2941
  </xsl:when>
@@ -2366,12 +2957,49 @@
2366
2957
 
2367
2958
  </xsl:template>
2368
2959
 
2960
+ <xsl:template match="*[local-name() = 'sup_fn']">
2961
+ <fo:inline font-size="65%" keep-with-previous.within-line="always" vertical-align="super">
2962
+ <xsl:apply-templates/>
2963
+ </fo:inline>
2964
+ </xsl:template>
2965
+
2966
+ <!-- for chemical expressions, when prefix superscripted -->
2967
+ <xsl:template match="mathml:msup[count(*) = 2 and count(mathml:mrow) = 2]/mathml:mrow[1][count(*) = 1 and mathml:mtext and (mathml:mtext/text() = '' or not(mathml:mtext/text()))]/mathml:mtext" mode="mathml" priority="2">
2968
+ <mathml:mspace height="1ex"/>
2969
+ </xsl:template>
2970
+ <xsl:template match="mathml:msup[count(*) = 2 and count(mathml:mrow) = 2]/mathml:mrow[1][count(*) = 1 and mathml:mtext and (mathml:mtext/text() = ' ' or mathml:mtext/text() = ' ')]/mathml:mtext" mode="mathml" priority="2">
2971
+ <mathml:mspace width="1ex" height="1ex"/>
2972
+ </xsl:template>
2973
+
2974
+ <!-- set height for sup -->
2975
+ <!-- <xsl:template match="mathml:msup[count(*) = 2 and count(mathml:mrow) = 2]/mathml:mrow[1][count(*) = 1 and mathml:mtext and (mathml:mtext/text() != '' and mathml:mtext/text() != ' ' and mathml:mtext/text() != '&#xa0;')]/mathml:mtext" mode="mtext"> -->
2976
+ <xsl:template match="mathml:msup[count(*) = 2 and count(mathml:mrow) = 2]/mathml:mrow[1][count(*) = 1]/*" mode="mathml" priority="2">
2977
+ <xsl:copy>
2978
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
2979
+ </xsl:copy>
2980
+ <!-- <xsl:copy-of select="."/> -->
2981
+ <mathml:mspace height="1.4ex"/>
2982
+ </xsl:template>
2983
+
2984
+ <!-- set script minimal font-size -->
2985
+ <xsl:template match="mathml:math" mode="mathml" priority="2">
2986
+ <xsl:copy>
2987
+ <xsl:apply-templates select="@*" mode="mathml"/>
2988
+ <mathml:mstyle scriptminsize="6pt">
2989
+ <xsl:apply-templates select="node()" mode="mathml"/>
2990
+ </mathml:mstyle>
2991
+ </xsl:copy>
2992
+ </xsl:template>
2993
+
2369
2994
  <xsl:template name="insertHeaderFooter">
2370
- <!-- <xsl:variable name="header-title">Le BIPM et la Convention du Mètre</xsl:variable> -->
2995
+ <xsl:param name="header-title"/>
2371
2996
  <fo:static-content flow-name="header-odd">
2372
2997
  <fo:block-container font-family="Arial" font-size="8pt" padding-top="12.5mm">
2373
- <fo:block text-align="right">
2374
- <fo:retrieve-marker retrieve-class-name="header-title" retrieve-boundary="page-sequence" retrieve-position="first-starting-within-page"/>
2998
+ <fo:block text-align="right">
2999
+ <xsl:copy-of select="$header-title"/>
3000
+ <!-- <fo:retrieve-marker retrieve-class-name="header-title"
3001
+ retrieve-boundary="page-sequence"
3002
+ retrieve-position="first-starting-within-page"/> -->
2375
3003
  <xsl:text>  </xsl:text>
2376
3004
  <fo:inline font-size="13pt" baseline-shift="-15%">•</fo:inline>
2377
3005
  <xsl:text>  </xsl:text>
@@ -2388,8 +3016,11 @@
2388
3016
  <fo:inline font-weight="bold"><fo:page-number/></fo:inline>
2389
3017
  <xsl:text>  </xsl:text>
2390
3018
  <fo:inline font-size="13pt" baseline-shift="-15%">•</fo:inline>
2391
- <xsl:text>  </xsl:text>
2392
- <fo:retrieve-marker retrieve-class-name="header-title" retrieve-boundary="page-sequence" retrieve-position="first-starting-within-page"/>
3019
+ <xsl:text>  </xsl:text>
3020
+ <xsl:copy-of select="$header-title"/>
3021
+ <!-- <fo:retrieve-marker retrieve-class-name="header-title"
3022
+ retrieve-boundary="page-sequence"
3023
+ retrieve-position="first-starting-within-page"/> -->
2393
3024
  </fo:block>
2394
3025
  <fo:block-container font-size="1pt" border-top="0.5pt solid black" width="86.6mm">
2395
3026
  <fo:block> </fo:block>
@@ -2398,7 +3029,7 @@
2398
3029
  </fo:static-content>
2399
3030
  </xsl:template>
2400
3031
 
2401
- <xsl:template name="insertHeaderFooterAppendix">
3032
+ <!-- <xsl:template name="insertHeaderFooterAppendix">
2402
3033
  <fo:static-content flow-name="header-appendix">
2403
3034
  <fo:block-container font-size="11pt" padding-top="12.7mm">
2404
3035
 
@@ -2435,7 +3066,7 @@
2435
3066
  <fo:block text-align="center" padding-bottom="12.7mm"><fo:page-number/>/<fo:page-number-citation ref-id="theLastPage"/></fo:block>
2436
3067
  </fo:block-container>
2437
3068
  </fo:static-content>
2438
- </xsl:template>
3069
+ </xsl:template> -->
2439
3070
 
2440
3071
  <xsl:template name="printRevisionDate">
2441
3072
  <xsl:param name="date"/>
@@ -2501,7 +3132,7 @@
2501
3132
  </fo:static-content>
2502
3133
  </xsl:template>
2503
3134
 
2504
- <xsl:template name="insertIndexPages">
3135
+ <!-- <xsl:template name="insertIndexPages">
2505
3136
  <fo:page-sequence master-reference="index" force-page-count="no-force">
2506
3137
  <xsl:call-template name="insertHeaderFooter"/>
2507
3138
  <fo:flow flow-name="xsl-region-body">
@@ -2518,13 +3149,13 @@
2518
3149
  <fo:block>atmosphère normale, 52</fo:block>
2519
3150
  <fo:block>atome gramme, 104</fo:block>
2520
3151
  <fo:block>atome de césium, niveaux hyperfins, 15, 17, 18, 56, 58, 83, 85, 92, 94, 97, 98, 102</fo:block>
2521
- <xsl:if test="position() != last()"><fo:block> </fo:block></xsl:if>
3152
+ <xsl:if test="position() != last()"><fo:block>&#xA0;</fo:block></xsl:if>
2522
3153
  </xsl:for-each>
2523
3154
 
2524
3155
  </fo:flow>
2525
3156
  </fo:page-sequence>
2526
3157
  </xsl:template>
2527
-
3158
+ -->
2528
3159
 
2529
3160
  <xsl:variable name="Image-Logo-BIPM">
2530
3161
  <xsl:text>iVBORw0KGgoAAAANSUhEUgAAAaIAAADRCAYAAACOyra0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2dpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpGOTdGMTE3NDA3MjA2ODExODIyQUJFNEQ3OTI1MkI2OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMTdGMTkxM0YzNEIxMUVBOEZCREQ0ODFDQjY0QzlCNyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMTdGMTkxMkYzNEIxMUVBOEZCREQ0ODFDQjY0QzlCNyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBJbkRlc2lnbiBDUzYgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0idXVpZDoyNGQ2ZDM1ZS1kNDc4LTcxNGItYjYwZi1iMDMyYWFmYzM3OTYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5pZDoxNjcwQkZBMDExMjA2ODExODIyQUJFNEQ3OTI1MkI2OSIvPiA8L3JkZjpEZXNjcmlw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</xsl:text>
@@ -2940,13 +3571,30 @@
2940
3571
  <title-part lang="en">
2941
3572
 
2942
3573
 
3574
+
3575
+ <xsl:text>Part #</xsl:text>
3576
+
2943
3577
  </title-part>
2944
3578
  <title-part lang="fr">
2945
3579
 
2946
3580
 
3581
+
3582
+ <xsl:text>Partie #</xsl:text>
3583
+
2947
3584
  </title-part>
2948
3585
  <title-part lang="zh">第 # 部分:</title-part>
2949
3586
 
3587
+ <title-subpart lang="en">
3588
+
3589
+ <xsl:text>Sub-part #</xsl:text>
3590
+
3591
+ </title-subpart>
3592
+ <title-subpart lang="fr">
3593
+
3594
+ <xsl:text>Partie de sub #</xsl:text>
3595
+
3596
+ </title-subpart>
3597
+
2950
3598
  <title-modified lang="en">modified</title-modified>
2951
3599
  <title-modified lang="fr">modifiée</title-modified>
2952
3600
 
@@ -3155,7 +3803,7 @@
3155
3803
 
3156
3804
  <xsl:attribute name="font-weight">bold</xsl:attribute>
3157
3805
  <xsl:attribute name="text-align">left</xsl:attribute>
3158
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
3806
+ <xsl:attribute name="margin-top">24pt</xsl:attribute>
3159
3807
  <xsl:attribute name="margin-left">25mm</xsl:attribute>
3160
3808
  <xsl:attribute name="text-indent">-25mm</xsl:attribute>
3161
3809
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
@@ -3367,9 +4015,9 @@
3367
4015
 
3368
4016
 
3369
4017
 
3370
-
3371
- <fo:block> </fo:block>
3372
-
4018
+ <!-- <xsl:if test="$namespace = 'bipm'">
4019
+ <fo:block>&#xA0;</fo:block>
4020
+ </xsl:if> -->
3373
4021
 
3374
4022
  <!-- $namespace = 'iso' or -->
3375
4023
 
@@ -3551,6 +4199,11 @@
3551
4199
  <xsl:if test="normalize-space() != ''">
3552
4200
  <fo:block xsl:use-attribute-sets="table-name-style">
3553
4201
 
4202
+
4203
+ <xsl:if test="not(*[local-name()='tab'])"> <!-- table without number -->
4204
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
4205
+ </xsl:if>
4206
+
3554
4207
  <xsl:apply-templates/>
3555
4208
  </fo:block>
3556
4209
  </xsl:if>
@@ -3918,6 +4571,14 @@
3918
4571
 
3919
4572
 
3920
4573
 
4574
+
4575
+ <xsl:if test="count(*) = 1 and local-name(*[1]) = 'th'">
4576
+ <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
4577
+ </xsl:if>
4578
+ <xsl:if test="not(ancestor::*[local-name()='note_side'])">
4579
+ <xsl:attribute name="min-height">5mm</xsl:attribute>
4580
+ </xsl:if>
4581
+
3921
4582
  <!-- <xsl:if test="$namespace = 'bipm'">
3922
4583
  <xsl:attribute name="height">8mm</xsl:attribute>
3923
4584
  </xsl:if> -->
@@ -4023,7 +4684,12 @@
4023
4684
  </xsl:attribute>
4024
4685
  </xsl:if>
4025
4686
  <xsl:call-template name="display-align"/>
4026
- <fo:block>
4687
+ <fo:block>
4688
+
4689
+ <xsl:if test="not(.//bipm:image)">
4690
+ <xsl:attribute name="line-stacking-strategy">font-height</xsl:attribute>
4691
+ </xsl:if>
4692
+
4027
4693
  <xsl:apply-templates/>
4028
4694
  </fo:block>
4029
4695
  </fo:table-cell>
@@ -4270,7 +4936,16 @@
4270
4936
  <xsl:apply-templates/>
4271
4937
  </fo:inline>
4272
4938
  </xsl:template><xsl:template match="*[local-name()='dl']">
4273
- <fo:block-container margin-left="0mm">
4939
+ <fo:block-container>
4940
+
4941
+
4942
+ <xsl:if test="not(ancestor::*[local-name() = 'li'])">
4943
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
4944
+ </xsl:if>
4945
+ <xsl:if test="ancestor::*[local-name() = 'li']">
4946
+ <xsl:attribute name="margin-left">6.5mm</xsl:attribute><!-- 8 mm -->
4947
+ </xsl:if>
4948
+
4274
4949
  <xsl:if test="parent::*[local-name() = 'note']">
4275
4950
  <xsl:attribute name="margin-left">
4276
4951
  <xsl:choose>
@@ -4280,8 +4955,13 @@
4280
4955
  </xsl:attribute>
4281
4956
 
4282
4957
  </xsl:if>
4283
- <fo:block-container margin-left="0mm">
4284
-
4958
+ <fo:block-container>
4959
+
4960
+
4961
+ <!-- <xsl:if test="not(ancestor::*[local-name() = 'li'])"> -->
4962
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
4963
+ <!-- </xsl:if> -->
4964
+
4285
4965
  <xsl:variable name="parent" select="local-name(..)"/>
4286
4966
 
4287
4967
  <xsl:variable name="key_iso">
@@ -4295,9 +4975,12 @@
4295
4975
  <fo:block margin-bottom="12pt" text-align="left">
4296
4976
 
4297
4977
  <xsl:variable name="title-where">
4298
- <xsl:call-template name="getTitle">
4299
- <xsl:with-param name="name" select="'title-where'"/>
4300
- </xsl:call-template>
4978
+
4979
+
4980
+ <xsl:call-template name="getTitle">
4981
+ <xsl:with-param name="name" select="'title-where'"/>
4982
+ </xsl:call-template>
4983
+
4301
4984
  </xsl:variable>
4302
4985
  <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
4303
4986
  <xsl:apply-templates select="*[local-name()='dt']/*"/>
@@ -4313,9 +4996,12 @@
4313
4996
 
4314
4997
 
4315
4998
  <xsl:variable name="title-where">
4316
- <xsl:call-template name="getTitle">
4317
- <xsl:with-param name="name" select="'title-where'"/>
4318
- </xsl:call-template>
4999
+
5000
+
5001
+ <xsl:call-template name="getTitle">
5002
+ <xsl:with-param name="name" select="'title-where'"/>
5003
+ </xsl:call-template>
5004
+
4319
5005
  </xsl:variable>
4320
5006
  <xsl:value-of select="$title-where"/>
4321
5007
  </fo:block>
@@ -4326,9 +5012,12 @@
4326
5012
 
4327
5013
 
4328
5014
  <xsl:variable name="title-key">
4329
- <xsl:call-template name="getTitle">
4330
- <xsl:with-param name="name" select="'title-key'"/>
4331
- </xsl:call-template>
5015
+
5016
+
5017
+ <xsl:call-template name="getTitle">
5018
+ <xsl:with-param name="name" select="'title-key'"/>
5019
+ </xsl:call-template>
5020
+
4332
5021
  </xsl:variable>
4333
5022
  <xsl:value-of select="$title-key"/>
4334
5023
  </fo:block>
@@ -4902,7 +5591,18 @@
4902
5591
  <xsl:with-param name="previousRow" select="$newRow"/>
4903
5592
  </xsl:apply-templates>
4904
5593
  </xsl:template><xsl:template name="getLang">
4905
- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
5594
+ <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
5595
+ <xsl:variable name="language">
5596
+ <xsl:choose>
5597
+ <xsl:when test="$language_current != ''">
5598
+ <xsl:value-of select="$language_current"/>
5599
+ </xsl:when>
5600
+ <xsl:otherwise>
5601
+ <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
5602
+ </xsl:otherwise>
5603
+ </xsl:choose>
5604
+ </xsl:variable>
5605
+
4906
5606
  <xsl:choose>
4907
5607
  <xsl:when test="$language = 'English'">en</xsl:when>
4908
5608
  <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
@@ -4937,6 +5637,11 @@
4937
5637
  <xsl:value-of select="substring($str, 2)"/>
4938
5638
  </xsl:template><xsl:template match="mathml:math">
4939
5639
  <fo:inline font-family="STIX Two Math"> <!-- -->
5640
+
5641
+ <xsl:if test="ancestor::*[local-name()='table']">
5642
+ <xsl:attribute name="font-size">95%</xsl:attribute> <!-- base font in table is 10pt -->
5643
+ </xsl:if>
5644
+
4940
5645
  <xsl:variable name="mathml">
4941
5646
  <xsl:apply-templates select="." mode="mathml"/>
4942
5647
  </xsl:variable>
@@ -5019,10 +5724,14 @@
5019
5724
  </fo:inline>
5020
5725
  </xsl:template><xsl:template match="*[local-name() = 'modification']">
5021
5726
  <xsl:variable name="title-modified">
5022
- <xsl:call-template name="getTitle">
5023
- <xsl:with-param name="name" select="'title-modified'"/>
5024
- </xsl:call-template>
5727
+
5728
+
5729
+ <xsl:call-template name="getTitle">
5730
+ <xsl:with-param name="name" select="'title-modified'"/>
5731
+ </xsl:call-template>
5732
+
5025
5733
  </xsl:variable>
5734
+
5026
5735
  <xsl:choose>
5027
5736
  <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
5028
5737
  <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
@@ -5756,9 +6465,14 @@
5756
6465
 
5757
6466
  <fo:inline>
5758
6467
 
5759
- <xsl:call-template name="getTitle">
5760
- <xsl:with-param name="name" select="'title-source'"/>
5761
- </xsl:call-template>
6468
+
6469
+
6470
+
6471
+ <xsl:call-template name="getTitle">
6472
+ <xsl:with-param name="name" select="'title-source'"/>
6473
+ </xsl:call-template>
6474
+
6475
+
5762
6476
  <xsl:text>: </xsl:text>
5763
6477
  </fo:inline>
5764
6478
 
@@ -5910,9 +6624,12 @@
5910
6624
  </fo:block>
5911
6625
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
5912
6626
  <xsl:variable name="title-deprecated">
5913
- <xsl:call-template name="getTitle">
5914
- <xsl:with-param name="name" select="'title-deprecated'"/>
5915
- </xsl:call-template>
6627
+
6628
+
6629
+ <xsl:call-template name="getTitle">
6630
+ <xsl:with-param name="name" select="'title-deprecated'"/>
6631
+ </xsl:call-template>
6632
+
5916
6633
  </xsl:variable>
5917
6634
  <fo:block xsl:use-attribute-sets="deprecates-style">
5918
6635
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -6279,13 +6996,22 @@
6279
6996
  </xsl:template><xsl:template name="split">
6280
6997
  <xsl:param name="pText" select="."/>
6281
6998
  <xsl:param name="sep" select="','"/>
6999
+ <xsl:param name="normalize-space" select="'true'"/>
6282
7000
  <xsl:if test="string-length($pText) &gt;0">
6283
7001
  <item>
6284
- <xsl:value-of select="normalize-space(substring-before(concat($pText, ','), $sep))"/>
7002
+ <xsl:choose>
7003
+ <xsl:when test="$normalize-space = 'true'">
7004
+ <xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
7005
+ </xsl:when>
7006
+ <xsl:otherwise>
7007
+ <xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
7008
+ </xsl:otherwise>
7009
+ </xsl:choose>
6285
7010
  </item>
6286
7011
  <xsl:call-template name="split">
6287
7012
  <xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
6288
7013
  <xsl:with-param name="sep" select="$sep"/>
7014
+ <xsl:with-param name="normalize-space" select="$normalize-space"/>
6289
7015
  </xsl:call-template>
6290
7016
  </xsl:if>
6291
7017
  </xsl:template><xsl:template name="getDocumentId">
@@ -6351,4 +7077,23 @@
6351
7077
  <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
6352
7078
  </xsl:call-template>
6353
7079
  </xsl:if>
7080
+ </xsl:template><xsl:template name="repeat">
7081
+ <xsl:param name="char" select="'*'"/>
7082
+ <xsl:param name="count"/>
7083
+ <xsl:if test="$count &gt; 0">
7084
+ <xsl:value-of select="$char"/>
7085
+ <xsl:call-template name="repeat">
7086
+ <xsl:with-param name="char" select="$char"/>
7087
+ <xsl:with-param name="count" select="$count - 1"/>
7088
+ </xsl:call-template>
7089
+ </xsl:if>
7090
+ </xsl:template><xsl:template name="getLocalizedString">
7091
+ <xsl:param name="key"/>
7092
+
7093
+ <xsl:variable name="curr_lang">
7094
+ <xsl:call-template name="getLang"/>
7095
+ </xsl:variable>
7096
+
7097
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
7098
+
6354
7099
  </xsl:template></xsl:stylesheet>