metanorma-iec 1.3.5 → 1.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +1 -1
- data/lib/asciidoctor/iec/front.rb +64 -46
- data/lib/asciidoctor/iec/isodoc.rng +62 -8
- data/lib/asciidoctor/iec/isostandard.rng +7 -3
- data/lib/asciidoctor/iec/reqt.rng +15 -4
- data/lib/isodoc/iec/iec.international-standard.xsl +558 -82
- data/lib/metanorma/iec/processor.rb +1 -1
- data/lib/metanorma/iec/version.rb +1 -1
- data/metanorma-iec.gemspec +1 -1
- data/spec/asciidoctor/blocks_spec.rb +3 -3
- data/spec/isodoc/postproc_spec.rb +221 -192
- data/spec/spec_helper.rb +2 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d358626bded62b0caaab1e332d70df6345990e79bf8f7501f6b48125e8b65e6b
|
4
|
+
data.tar.gz: 208f83d9d0386b6899b9b0e68f3ab285ec942c92950063190f38b39f2433711d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bde2cf9571931d12d41b2c41a44ae5fbad6d23c043f89421e41b59ad6a198780460024c00fb6ebcec3580efee065a12fd6a5263bf89e3b9a4a6168ef79ffd965
|
7
|
+
data.tar.gz: d1d58bd85400d59d5a247b49fe3974de54839d336576ebd0ec7a42ed150d38b3062543403a4b18189581bbb5ea7a396f56bc34854ff173e8ef591d0ffc9c194a
|
data/.github/workflows/rake.yml
CHANGED
@@ -6,7 +6,9 @@ module Asciidoctor
|
|
6
6
|
csv_split(publishers)&.each do |p|
|
7
7
|
xml.contributor do |c|
|
8
8
|
c.role **{ type: "author" }
|
9
|
-
c.organization
|
9
|
+
c.organization do |a|
|
10
|
+
organization(a, p, false, node, !node.attr("publisher"))
|
11
|
+
end
|
10
12
|
end
|
11
13
|
end
|
12
14
|
end
|
@@ -16,7 +18,9 @@ module Asciidoctor
|
|
16
18
|
csv_split(publishers)&.each do |p|
|
17
19
|
xml.contributor do |c|
|
18
20
|
c.role **{ type: "publisher" }
|
19
|
-
c.organization
|
21
|
+
c.organization do |a|
|
22
|
+
organization(a, p, true, node, !node.attr("publisher"))
|
23
|
+
end
|
20
24
|
end
|
21
25
|
end
|
22
26
|
end
|
@@ -47,24 +51,29 @@ module Asciidoctor
|
|
47
51
|
xml.docidentifier dn, **attr_code(type: "ISO")
|
48
52
|
end
|
49
53
|
|
50
|
-
def id_edition_suffix(
|
54
|
+
def id_edition_suffix(docnum, node)
|
51
55
|
ed = node.attr("edition") || 1
|
52
|
-
|
53
|
-
|
56
|
+
docnum += " ED #{ed}"
|
57
|
+
docnum
|
54
58
|
end
|
55
59
|
|
56
60
|
STAGE_CODES = {
|
57
|
-
"PNW" => "1000", "ANW" => "2000", "CAN" => "2098", "ACD" => "2099",
|
58
|
-
"
|
59
|
-
"
|
60
|
-
"
|
61
|
-
"
|
62
|
-
"
|
63
|
-
"
|
64
|
-
"
|
65
|
-
"
|
66
|
-
"
|
67
|
-
"
|
61
|
+
"PNW" => "1000", "ANW" => "2000", "CAN" => "2098", "ACD" => "2099",
|
62
|
+
"CD" => "3020", "BWG" => "3092", "A2CD" => "3099", "2CD" => "3520",
|
63
|
+
"3CD" => "3520", "4CD" => "3520", "5CD" => "3520", "6CD" => "3520",
|
64
|
+
"7CD" => "3520", "8CD" => "3520", "9CD" => "3520", "CDM" => "3591",
|
65
|
+
"A3CD" => "3592", "A4CD" => "3592", "A5CD" => "3592", "A6CD" => "3592",
|
66
|
+
"A7CD" => "3592", "A8CD" => "3592", "A9CD" => "3592", "ACDV" => "3599",
|
67
|
+
"CCDV" => "4020", "CDVM" => "4091", "NCDV" => "4092",
|
68
|
+
"NADIS" => "4093", "ADIS" => "4099", "ADTR" => "4099",
|
69
|
+
"ADTS" => "4099", "RDISH" => "5000", "RFDIS" => "5000",
|
70
|
+
"CDISH" => "5020", "CDPAS" => "5020", "CDTR" => "5020",
|
71
|
+
"CDTS" => "5020", "CFDIS" => "5020", "DTRM" => "5092",
|
72
|
+
"DTSM" => "5092", "NDTR" => "5092", "NDTS" => "5092",
|
73
|
+
"NFDIS" => "5092", "APUB" => "5099", "BPUB" => "6000",
|
74
|
+
"PPUB" => "6060", "RR" => "9092", "AMW" => "9220", "WPUB" => "9599",
|
75
|
+
"DELPUB" => "9960", "PWI" => "0000", "NWIP" => "1000", "WD" => "2000",
|
76
|
+
"CDV" => "4000", "FDIS" => "5000"
|
68
77
|
}.freeze
|
69
78
|
|
70
79
|
DOC_STAGE = {
|
@@ -82,19 +91,23 @@ module Asciidoctor
|
|
82
91
|
}.freeze
|
83
92
|
|
84
93
|
STAGE_ABBRS = {
|
85
|
-
"00" => {"00" => "PWI"},
|
86
|
-
"10" => {"00" => "PNW"},
|
87
|
-
"20" => {"00" => "ANW", "98" => "CAN", "99" => "ACD"},
|
88
|
-
"30" => {"00" => "CD", "20" => "CD", "92" => "BWG", "97" => "MERGED",
|
89
|
-
|
90
|
-
"
|
91
|
-
|
92
|
-
"
|
93
|
-
|
94
|
-
|
95
|
-
"
|
96
|
-
|
97
|
-
"
|
94
|
+
"00" => { "00" => "PWI" },
|
95
|
+
"10" => { "00" => "PNW" },
|
96
|
+
"20" => { "00" => "ANW", "98" => "CAN", "99" => "ACD" },
|
97
|
+
"30" => { "00" => "CD", "20" => "CD", "92" => "BWG", "97" => "MERGED",
|
98
|
+
"98" => "DREJ", "99" => "A2CD" },
|
99
|
+
"35" => { "00" => "CD", "20" => "CD", "91" => "CDM", "92" => "ACD",
|
100
|
+
"99" => "ACDV" },
|
101
|
+
"40" => { "00" => "CCDV", "20" => "CCDV", "91" => "CDVM",
|
102
|
+
"92" => "NCDV", "93" => "NADIS",
|
103
|
+
"95" => "ADISSB", "99" => "ADIS" },
|
104
|
+
"50" => { "00" => "RFDIS", "20" => "CFDIS", "92" => "NFDIS",
|
105
|
+
"95" => "APUBSB", "99" => "APUB" },
|
106
|
+
"60" => { "00" => "BPUB", "60" => "PPUB" },
|
107
|
+
"90" => { "00" => "RR", "92" => "RR" },
|
108
|
+
"92" => { "00" => "AMW", "20" => "AMW" },
|
109
|
+
"95" => { "00" => "WPUB", "99" => "WPUB" },
|
110
|
+
"99" => { "00" => "DELPUB", "60" => "DELPUB" },
|
98
111
|
}.freeze
|
99
112
|
|
100
113
|
STAGE_NAMES = {
|
@@ -112,7 +125,7 @@ module Asciidoctor
|
|
112
125
|
"99": "Deleted",
|
113
126
|
}.freeze
|
114
127
|
|
115
|
-
def status_abbrev1(stage, substage, iter, doctype,
|
128
|
+
def status_abbrev1(stage, substage, iter, doctype, _draft)
|
116
129
|
return "" unless stage
|
117
130
|
|
118
131
|
abbr = STAGE_ABBRS.dig(stage, substage) || "??"
|
@@ -121,30 +134,30 @@ module Asciidoctor
|
|
121
134
|
end
|
122
135
|
case doctype
|
123
136
|
when "technical-report"
|
124
|
-
|
125
|
-
|
126
|
-
|
137
|
+
abbr = "ADTR" if stage == "40" && substage == "99"
|
138
|
+
abbr = "CDTR" if stage == "50" && substage == "20"
|
139
|
+
abbr = "DTRM" if stage == "50" && substage == "92"
|
127
140
|
when "technical-specification"
|
128
|
-
|
129
|
-
|
130
|
-
|
141
|
+
abbr = "ADTS" if stage == "40" && substage == "99"
|
142
|
+
abbr = "CDTS" if stage == "50" && substage == "20"
|
143
|
+
abbr = "DTSM" if stage == "50" && substage == "92"
|
131
144
|
when "interpretation-sheet"
|
132
|
-
|
133
|
-
|
145
|
+
abbr = "RDISH" if stage == "50" && substage == "00"
|
146
|
+
abbr = "CDISH" if stage == "50" && substage == "20"
|
134
147
|
when "publicly-available-specification"
|
135
|
-
|
148
|
+
abbr = "CDPAS" if stage == "50" && substage == "20"
|
136
149
|
end
|
137
150
|
abbr = abbr.sub(/CD$/, "#{iter}CD") if iter
|
138
151
|
abbr
|
139
152
|
end
|
140
153
|
|
141
|
-
def stage_abbr(stage,
|
154
|
+
def stage_abbr(stage, _substage)
|
142
155
|
return "PPUB" if stage == "60"
|
143
156
|
|
144
157
|
DOC_STAGE[stage.to_sym] || "??"
|
145
158
|
end
|
146
159
|
|
147
|
-
def stage_name(stage,
|
160
|
+
def stage_name(stage, _substage, _doctype, _iteration)
|
148
161
|
STAGE_NAMES[stage.to_sym]
|
149
162
|
end
|
150
163
|
|
@@ -159,11 +172,16 @@ module Asciidoctor
|
|
159
172
|
st = node.attr("status") || node.attr("docstage")
|
160
173
|
stage = get_stage(node)
|
161
174
|
node.attr("docsubstage") ||
|
162
|
-
( stage == "60"
|
175
|
+
(if stage == "60"
|
176
|
+
"60"
|
177
|
+
else
|
178
|
+
STAGE_CODES[st] ? STAGE_CODES[st][2..3] : "00"
|
179
|
+
end)
|
163
180
|
end
|
164
181
|
|
165
|
-
def id_stage_abbr(stage,
|
182
|
+
def id_stage_abbr(stage, _substage, node)
|
166
183
|
return "" if stage == "60"
|
184
|
+
|
167
185
|
abbr = DOC_STAGE[stage.to_sym] || ""
|
168
186
|
abbr = node.attr("iteration") + abbr if node.attr("iteration")
|
169
187
|
abbr
|
@@ -174,9 +192,9 @@ module Asciidoctor
|
|
174
192
|
substage = get_substage(node)
|
175
193
|
xml.status do |s|
|
176
194
|
s.stage stage, **attr_code(abbreviation: stage_abbr(stage, substage))
|
177
|
-
|
178
|
-
|
179
|
-
|
195
|
+
subst = status_abbrev1(stage, substage, node.attr("iteration"),
|
196
|
+
doctype(node), node.attr("draft"))
|
197
|
+
s.substage substage, **attr_code(abbreviation: subst)
|
180
198
|
node.attr("iteration") && (s.iteration node.attr("iteration"))
|
181
199
|
end
|
182
200
|
end
|
@@ -204,6 +204,18 @@
|
|
204
204
|
</zeroOrMore>
|
205
205
|
</element>
|
206
206
|
</define>
|
207
|
+
<define name="dt">
|
208
|
+
<element name="dt">
|
209
|
+
<optional>
|
210
|
+
<attribute name="id">
|
211
|
+
<data type="ID"/>
|
212
|
+
</attribute>
|
213
|
+
</optional>
|
214
|
+
<zeroOrMore>
|
215
|
+
<ref name="TextElement"/>
|
216
|
+
</zeroOrMore>
|
217
|
+
</element>
|
218
|
+
</define>
|
207
219
|
<define name="example">
|
208
220
|
<element name="example">
|
209
221
|
<attribute name="id">
|
@@ -899,7 +911,7 @@
|
|
899
911
|
</include>
|
900
912
|
<!-- end overrides -->
|
901
913
|
<define name="docsubtype">
|
902
|
-
<element name="
|
914
|
+
<element name="subdoctype">
|
903
915
|
<ref name="DocumentSubtype"/>
|
904
916
|
</element>
|
905
917
|
</define>
|
@@ -955,7 +967,34 @@
|
|
955
967
|
<define name="concept">
|
956
968
|
<element name="concept">
|
957
969
|
<optional>
|
958
|
-
<attribute name="
|
970
|
+
<attribute name="ital">
|
971
|
+
<data type="boolean"/>
|
972
|
+
</attribute>
|
973
|
+
</optional>
|
974
|
+
<optional>
|
975
|
+
<attribute name="ref">
|
976
|
+
<data type="boolean"/>
|
977
|
+
</attribute>
|
978
|
+
</optional>
|
979
|
+
<optional>
|
980
|
+
<element name="refterm">
|
981
|
+
<zeroOrMore>
|
982
|
+
<choice>
|
983
|
+
<ref name="PureTextElement"/>
|
984
|
+
<ref name="stem"/>
|
985
|
+
</choice>
|
986
|
+
</zeroOrMore>
|
987
|
+
</element>
|
988
|
+
</optional>
|
989
|
+
<optional>
|
990
|
+
<element name="renderterm">
|
991
|
+
<zeroOrMore>
|
992
|
+
<choice>
|
993
|
+
<ref name="PureTextElement"/>
|
994
|
+
<ref name="stem"/>
|
995
|
+
</choice>
|
996
|
+
</zeroOrMore>
|
997
|
+
</element>
|
959
998
|
</optional>
|
960
999
|
<choice>
|
961
1000
|
<ref name="eref"/>
|
@@ -972,8 +1011,14 @@
|
|
972
1011
|
<ref name="imagemap"/>
|
973
1012
|
<ref name="svgmap"/>
|
974
1013
|
<ref name="inputform"/>
|
1014
|
+
<ref name="toc"/>
|
975
1015
|
</choice>
|
976
1016
|
</define>
|
1017
|
+
<define name="toc">
|
1018
|
+
<element name="toc">
|
1019
|
+
<ref name="ul"/>
|
1020
|
+
</element>
|
1021
|
+
</define>
|
977
1022
|
<define name="inputform">
|
978
1023
|
<element name="form">
|
979
1024
|
<attribute name="id">
|
@@ -981,6 +1026,9 @@
|
|
981
1026
|
</attribute>
|
982
1027
|
<attribute name="name"/>
|
983
1028
|
<attribute name="action"/>
|
1029
|
+
<optional>
|
1030
|
+
<attribute name="class"/>
|
1031
|
+
</optional>
|
984
1032
|
<zeroOrMore>
|
985
1033
|
<choice>
|
986
1034
|
<ref name="TextElement"/>
|
@@ -1212,6 +1260,12 @@
|
|
1212
1260
|
<optional>
|
1213
1261
|
<attribute name="type"/>
|
1214
1262
|
</optional>
|
1263
|
+
<optional>
|
1264
|
+
<attribute name="identifier"/>
|
1265
|
+
</optional>
|
1266
|
+
<optional>
|
1267
|
+
<attribute name="prefix"/>
|
1268
|
+
</optional>
|
1215
1269
|
<text/>
|
1216
1270
|
</define>
|
1217
1271
|
<define name="ics">
|
@@ -1473,26 +1527,26 @@
|
|
1473
1527
|
<optional>
|
1474
1528
|
<ref name="section-title"/>
|
1475
1529
|
</optional>
|
1476
|
-
<
|
1530
|
+
<choice>
|
1477
1531
|
<choice>
|
1478
1532
|
<group>
|
1479
|
-
<
|
1533
|
+
<oneOrMore>
|
1480
1534
|
<ref name="BasicBlock"/>
|
1481
|
-
</
|
1535
|
+
</oneOrMore>
|
1482
1536
|
<zeroOrMore>
|
1483
1537
|
<ref name="note"/>
|
1484
1538
|
</zeroOrMore>
|
1485
1539
|
</group>
|
1486
1540
|
<ref name="amend"/>
|
1487
1541
|
</choice>
|
1488
|
-
<
|
1542
|
+
<oneOrMore>
|
1489
1543
|
<choice>
|
1490
1544
|
<ref name="clause-subsection"/>
|
1491
1545
|
<ref name="terms"/>
|
1492
1546
|
<ref name="definitions"/>
|
1493
1547
|
</choice>
|
1494
|
-
</
|
1495
|
-
</
|
1548
|
+
</oneOrMore>
|
1549
|
+
</choice>
|
1496
1550
|
</define>
|
1497
1551
|
<define name="Annex-Section">
|
1498
1552
|
<optional>
|
@@ -101,7 +101,11 @@
|
|
101
101
|
<ref name="definitions"/>
|
102
102
|
</optional>
|
103
103
|
<oneOrMore>
|
104
|
-
<
|
104
|
+
<choice>
|
105
|
+
<ref name="clause"/>
|
106
|
+
<ref name="term-clause"/>
|
107
|
+
<ref name="terms"/>
|
108
|
+
</choice>
|
105
109
|
</oneOrMore>
|
106
110
|
</element>
|
107
111
|
</define>
|
@@ -136,7 +140,7 @@
|
|
136
140
|
<optional>
|
137
141
|
<ref name="section-title"/>
|
138
142
|
</optional>
|
139
|
-
<
|
143
|
+
<choice>
|
140
144
|
<choice>
|
141
145
|
<group>
|
142
146
|
<oneOrMore>
|
@@ -151,7 +155,7 @@
|
|
151
155
|
<oneOrMore>
|
152
156
|
<ref name="clause-subsection"/>
|
153
157
|
</oneOrMore>
|
154
|
-
</
|
158
|
+
</choice>
|
155
159
|
</define>
|
156
160
|
<define name="term">
|
157
161
|
<element name="term">
|
@@ -64,9 +64,9 @@
|
|
64
64
|
<optional>
|
65
65
|
<ref name="label"/>
|
66
66
|
</optional>
|
67
|
-
<
|
67
|
+
<zeroOrMore>
|
68
68
|
<ref name="subject"/>
|
69
|
-
</
|
69
|
+
</zeroOrMore>
|
70
70
|
<zeroOrMore>
|
71
71
|
<ref name="reqinherit"/>
|
72
72
|
</zeroOrMore>
|
@@ -80,6 +80,7 @@
|
|
80
80
|
<ref name="verification"/>
|
81
81
|
<ref name="import"/>
|
82
82
|
<ref name="description"/>
|
83
|
+
<ref name="component"/>
|
83
84
|
</choice>
|
84
85
|
</zeroOrMore>
|
85
86
|
<optional>
|
@@ -105,12 +106,16 @@
|
|
105
106
|
</define>
|
106
107
|
<define name="subject">
|
107
108
|
<element name="subject">
|
108
|
-
<
|
109
|
+
<oneOrMore>
|
110
|
+
<ref name="TextElement"/>
|
111
|
+
</oneOrMore>
|
109
112
|
</element>
|
110
113
|
</define>
|
111
114
|
<define name="reqinherit">
|
112
115
|
<element name="inherit">
|
113
|
-
<
|
116
|
+
<oneOrMore>
|
117
|
+
<ref name="TextElement"/>
|
118
|
+
</oneOrMore>
|
114
119
|
</element>
|
115
120
|
</define>
|
116
121
|
<define name="measurementtarget">
|
@@ -138,6 +143,12 @@
|
|
138
143
|
<ref name="RequirementSubpart"/>
|
139
144
|
</element>
|
140
145
|
</define>
|
146
|
+
<define name="component">
|
147
|
+
<element name="component">
|
148
|
+
<attribute name="class"/>
|
149
|
+
<ref name="RequirementSubpart"/>
|
150
|
+
</element>
|
151
|
+
</define>
|
141
152
|
<define name="reqt_references">
|
142
153
|
<element name="references">
|
143
154
|
<oneOrMore>
|
@@ -20,8 +20,12 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
<xsl:variable name="debug">false</xsl:variable>
|
23
|
-
<xsl:variable name="pageWidth" select="
|
24
|
-
<xsl:variable name="pageHeight" select="
|
23
|
+
<xsl:variable name="pageWidth" select="210"/>
|
24
|
+
<xsl:variable name="pageHeight" select="297"/>
|
25
|
+
<xsl:variable name="marginLeftRight1" select="25"/>
|
26
|
+
<xsl:variable name="marginLeftRight2" select="25"/>
|
27
|
+
<xsl:variable name="marginTop" select="31"/>
|
28
|
+
<xsl:variable name="marginBottom" select="15"/>
|
25
29
|
|
26
30
|
<xsl:variable name="copyrightText" select="concat('© ', //iec:iec-standard/iec:bibdata/iec:copyright/iec:owner/iec:organization/iec:abbreviation, ':', //iec:iec-standard/iec:bibdata/iec:copyright/iec:from)"/>
|
27
31
|
<!-- <xsl:variable name="lang-1st-letter" select="concat('(', translate(substring(iec:iec-standard/iec:bibdata/iec:language,1,1),$lower, $upper), ')')"/> -->
|
@@ -160,14 +164,14 @@
|
|
160
164
|
<fo:root font-family="Arial, Times New Roman, STIX Two Math, Source Han Sans" font-size="10pt" xml:lang="{$lang}">
|
161
165
|
<fo:layout-master-set>
|
162
166
|
<!-- cover pages -->
|
163
|
-
<fo:simple-page-master master-name="cover" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
167
|
+
<fo:simple-page-master master-name="cover" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
164
168
|
<fo:region-body margin-top="17.5mm" margin-bottom="12.5mm" margin-left="18mm" margin-right="20.5mm"/>
|
165
169
|
<fo:region-before region-name="header" extent="17.5mm"/>
|
166
170
|
<fo:region-after region-name="footer" extent="12.5mm" precedence="true"/>
|
167
171
|
<fo:region-start region-name="left-region" extent="18mm"/>
|
168
172
|
<fo:region-end region-name="right-region" extent="20.5mm"/>
|
169
173
|
</fo:simple-page-master>
|
170
|
-
<fo:simple-page-master master-name="cover_2nd" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
174
|
+
<fo:simple-page-master master-name="cover_2nd" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
171
175
|
<fo:region-body margin-top="17.5mm" margin-bottom="12.5mm" margin-left="25mm" margin-right="25mm" column-count="2" column-gap="5mm"/>
|
172
176
|
<fo:region-before region-name="header" extent="17.5mm"/>
|
173
177
|
<fo:region-after region-name="footer" extent="12.5mm" precedence="true"/>
|
@@ -175,7 +179,7 @@
|
|
175
179
|
<fo:region-end region-name="right-region" extent="25mm"/>
|
176
180
|
</fo:simple-page-master>
|
177
181
|
|
178
|
-
<fo:simple-page-master master-name="cover-FDIS" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
182
|
+
<fo:simple-page-master master-name="cover-FDIS" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
179
183
|
<fo:region-body margin-top="17.5mm" margin-bottom="29mm" margin-left="18mm" margin-right="19mm"/>
|
180
184
|
<fo:region-before region-name="header" extent="17.5mm"/>
|
181
185
|
<fo:region-after region-name="footer-FDIS" extent="29mm"/>
|
@@ -184,20 +188,20 @@
|
|
184
188
|
</fo:simple-page-master>
|
185
189
|
|
186
190
|
<!-- odd pages -->
|
187
|
-
<fo:simple-page-master master-name="odd" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
188
|
-
<fo:region-body margin-top="
|
189
|
-
<fo:region-before region-name="header-odd" extent="
|
190
|
-
<fo:region-after region-name="footer" extent="
|
191
|
-
<fo:region-start region-name="left-region" extent="
|
192
|
-
<fo:region-end region-name="right-region" extent="
|
191
|
+
<fo:simple-page-master master-name="odd" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
192
|
+
<fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
|
193
|
+
<fo:region-before region-name="header-odd" extent="{$marginTop}mm"/>
|
194
|
+
<fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
|
195
|
+
<fo:region-start region-name="left-region" extent="{$marginLeftRight1}mm"/>
|
196
|
+
<fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
|
193
197
|
</fo:simple-page-master>
|
194
198
|
<!-- even pages -->
|
195
|
-
<fo:simple-page-master master-name="even" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
196
|
-
<fo:region-body margin-top="
|
197
|
-
<fo:region-before region-name="header-even" extent="
|
198
|
-
<fo:region-after region-name="footer" extent="
|
199
|
-
<fo:region-start region-name="left-region" extent="
|
200
|
-
<fo:region-end region-name="right-region" extent="
|
199
|
+
<fo:simple-page-master master-name="even" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
200
|
+
<fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
|
201
|
+
<fo:region-before region-name="header-even" extent="{$marginTop}mm"/>
|
202
|
+
<fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
|
203
|
+
<fo:region-start region-name="left-region" extent="{$marginLeftRight1}mm"/>
|
204
|
+
<fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
|
201
205
|
</fo:simple-page-master>
|
202
206
|
<fo:page-sequence-master master-name="document">
|
203
207
|
<fo:repeatable-page-master-alternatives>
|
@@ -206,11 +210,11 @@
|
|
206
210
|
</fo:repeatable-page-master-alternatives>
|
207
211
|
</fo:page-sequence-master>
|
208
212
|
|
209
|
-
<fo:simple-page-master master-name="blank-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
213
|
+
<fo:simple-page-master master-name="blank-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
210
214
|
<fo:region-body margin-top="107mm" margin-bottom="0mm" margin-left="18mm" margin-right="0mm"/>
|
211
215
|
</fo:simple-page-master>
|
212
216
|
|
213
|
-
<fo:simple-page-master master-name="last-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
217
|
+
<fo:simple-page-master master-name="last-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
214
218
|
<fo:region-body margin-top="107mm" margin-bottom="0mm" margin-left="18mm" margin-right="0mm" background-color="rgb(236, 236, 236)"/>
|
215
219
|
<fo:region-before region-name="header" extent="107mm"/>
|
216
220
|
<fo:region-start region-name="left-region" extent="18mm"/>
|
@@ -2653,7 +2657,7 @@
|
|
2653
2657
|
|
2654
2658
|
|
2655
2659
|
|
2656
|
-
<xsl:attribute name="font-family">Courier</xsl:attribute>
|
2660
|
+
<xsl:attribute name="font-family">Courier New</xsl:attribute>
|
2657
2661
|
<xsl:attribute name="margin-top">5pt</xsl:attribute>
|
2658
2662
|
<xsl:attribute name="margin-bottom">5pt</xsl:attribute>
|
2659
2663
|
|
@@ -2746,6 +2750,7 @@
|
|
2746
2750
|
|
2747
2751
|
|
2748
2752
|
|
2753
|
+
|
2749
2754
|
</xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
|
2750
2755
|
|
2751
2756
|
<xsl:attribute name="padding-right">10mm</xsl:attribute>
|
@@ -2754,7 +2759,9 @@
|
|
2754
2759
|
|
2755
2760
|
|
2756
2761
|
|
2757
|
-
</xsl:attribute-set><xsl:
|
2762
|
+
</xsl:attribute-set><xsl:variable name="table-border_">
|
2763
|
+
|
2764
|
+
</xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-name-style">
|
2758
2765
|
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
2759
2766
|
|
2760
2767
|
|
@@ -2804,6 +2811,7 @@
|
|
2804
2811
|
|
2805
2812
|
|
2806
2813
|
|
2814
|
+
|
2807
2815
|
</xsl:attribute-set><xsl:attribute-set name="note-style">
|
2808
2816
|
|
2809
2817
|
|
@@ -2967,7 +2975,7 @@
|
|
2967
2975
|
</xsl:attribute-set><xsl:attribute-set name="tt-style">
|
2968
2976
|
|
2969
2977
|
|
2970
|
-
<xsl:attribute name="font-family">Courier</xsl:attribute>
|
2978
|
+
<xsl:attribute name="font-family">Courier New</xsl:attribute>
|
2971
2979
|
|
2972
2980
|
|
2973
2981
|
</xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
|
@@ -3026,14 +3034,15 @@
|
|
3026
3034
|
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
|
3027
3035
|
|
3028
3036
|
<!-- Normative references -->
|
3029
|
-
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/>
|
3037
|
+
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]" mode="contents"/>
|
3030
3038
|
<!-- Terms and definitions -->
|
3031
3039
|
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>
|
3032
3040
|
<!-- Another main sections -->
|
3033
3041
|
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
|
3034
3042
|
<xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
|
3035
3043
|
<!-- Bibliography -->
|
3036
|
-
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/>
|
3044
|
+
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]" mode="contents"/>
|
3045
|
+
|
3037
3046
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
3038
3047
|
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
|
3039
3048
|
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
|
@@ -3076,6 +3085,8 @@
|
|
3076
3085
|
<fo:block> </fo:block>
|
3077
3086
|
</xsl:if> -->
|
3078
3087
|
|
3088
|
+
|
3089
|
+
<!-- Display table's name before table as standalone block -->
|
3079
3090
|
<!-- $namespace = 'iso' or -->
|
3080
3091
|
|
3081
3092
|
<xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
|
@@ -3157,6 +3168,12 @@
|
|
3157
3168
|
|
3158
3169
|
|
3159
3170
|
|
3171
|
+
|
3172
|
+
|
3173
|
+
|
3174
|
+
<!-- display table's name before table for PAS inside block-container (2-columnn layout) -->
|
3175
|
+
|
3176
|
+
|
3160
3177
|
<xsl:variable name="table_width">
|
3161
3178
|
<!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
|
3162
3179
|
100%
|
@@ -3173,6 +3190,7 @@
|
|
3173
3190
|
|
3174
3191
|
|
3175
3192
|
|
3193
|
+
|
3176
3194
|
<attribute name="border">0.5pt solid black</attribute>
|
3177
3195
|
|
3178
3196
|
|
@@ -3200,6 +3218,8 @@
|
|
3200
3218
|
<xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
|
3201
3219
|
</xsl:if>
|
3202
3220
|
|
3221
|
+
|
3222
|
+
|
3203
3223
|
<xsl:choose>
|
3204
3224
|
<xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
|
3205
3225
|
<xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
|
@@ -3487,9 +3507,9 @@
|
|
3487
3507
|
<xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation">
|
3488
3508
|
<xsl:with-param name="continued">true</xsl:with-param>
|
3489
3509
|
</xsl:apply-templates>
|
3490
|
-
|
3491
|
-
|
3492
|
-
|
3510
|
+
|
3511
|
+
|
3512
|
+
|
3493
3513
|
|
3494
3514
|
</fo:table-cell>
|
3495
3515
|
</fo:table-row>
|
@@ -3583,7 +3603,11 @@
|
|
3583
3603
|
|
3584
3604
|
<xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
|
3585
3605
|
|
3586
|
-
<xsl:
|
3606
|
+
<xsl:variable name="isNoteOrFnExistShowAfterTable">
|
3607
|
+
|
3608
|
+
</xsl:variable>
|
3609
|
+
|
3610
|
+
<xsl:if test="$isNoteOrFnExist = 'true' or normalize-space($isNoteOrFnExistShowAfterTable) = 'true'">
|
3587
3611
|
|
3588
3612
|
<xsl:variable name="cols-count">
|
3589
3613
|
<xsl:choose>
|
@@ -3612,6 +3636,8 @@
|
|
3612
3636
|
</xsl:choose>
|
3613
3637
|
</xsl:for-each>
|
3614
3638
|
|
3639
|
+
|
3640
|
+
|
3615
3641
|
<xsl:choose>
|
3616
3642
|
<xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
|
3617
3643
|
<xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
|
@@ -3637,6 +3663,7 @@
|
|
3637
3663
|
<fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
|
3638
3664
|
|
3639
3665
|
|
3666
|
+
|
3640
3667
|
<xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
|
3641
3668
|
|
3642
3669
|
|
@@ -3652,6 +3679,11 @@
|
|
3652
3679
|
|
3653
3680
|
|
3654
3681
|
|
3682
|
+
|
3683
|
+
|
3684
|
+
<!-- for BSI (not PAS) display Notes before footnotes -->
|
3685
|
+
|
3686
|
+
|
3655
3687
|
<!-- except gb -->
|
3656
3688
|
|
3657
3689
|
<xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
|
@@ -3683,6 +3715,10 @@
|
|
3683
3715
|
<!-- fn processing -->
|
3684
3716
|
<xsl:call-template name="fn_display"/>
|
3685
3717
|
|
3718
|
+
|
3719
|
+
<!-- for PAS display Notes after footnotes -->
|
3720
|
+
|
3721
|
+
|
3686
3722
|
</fo:table-cell>
|
3687
3723
|
</fo:table-row>
|
3688
3724
|
</fo:table-body>
|
@@ -3724,6 +3760,19 @@
|
|
3724
3760
|
|
3725
3761
|
</fo:table-body>
|
3726
3762
|
|
3763
|
+
</xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/text()[1]" priority="2" mode="presentation_name">
|
3764
|
+
<xsl:choose>
|
3765
|
+
<xsl:when test="substring-after(., '—') != ''">
|
3766
|
+
<xsl:text>—</xsl:text><xsl:value-of select="substring-after(., '—')"/>
|
3767
|
+
</xsl:when>
|
3768
|
+
<xsl:otherwise>
|
3769
|
+
<xsl:value-of select="."/>
|
3770
|
+
</xsl:otherwise>
|
3771
|
+
</xsl:choose>
|
3772
|
+
</xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="presentation_name">
|
3773
|
+
<xsl:apply-templates mode="presentation_name"/>
|
3774
|
+
</xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/node()" mode="presentation_name">
|
3775
|
+
<xsl:apply-templates select="."/>
|
3727
3776
|
</xsl:template><xsl:template match="*[local-name()='tr']">
|
3728
3777
|
<xsl:variable name="parent-name" select="local-name(..)"/>
|
3729
3778
|
<!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
|
@@ -3739,10 +3788,13 @@
|
|
3739
3788
|
<xsl:attribute name="border-bottom">solid black 0.5pt</xsl:attribute>
|
3740
3789
|
|
3741
3790
|
|
3791
|
+
|
3792
|
+
|
3742
3793
|
</xsl:if>
|
3743
3794
|
<xsl:if test="$parent-name = 'tfoot'">
|
3744
3795
|
|
3745
3796
|
|
3797
|
+
|
3746
3798
|
<xsl:attribute name="border-left">solid black 0.5pt</xsl:attribute>
|
3747
3799
|
<xsl:attribute name="border-right">solid black 0.5pt</xsl:attribute>
|
3748
3800
|
|
@@ -3755,6 +3807,8 @@
|
|
3755
3807
|
|
3756
3808
|
|
3757
3809
|
|
3810
|
+
|
3811
|
+
|
3758
3812
|
<!-- <xsl:if test="$namespace = 'bipm'">
|
3759
3813
|
<xsl:attribute name="height">8mm</xsl:attribute>
|
3760
3814
|
</xsl:if> -->
|
@@ -3842,6 +3896,7 @@
|
|
3842
3896
|
|
3843
3897
|
|
3844
3898
|
|
3899
|
+
|
3845
3900
|
<xsl:if test="ancestor::*[local-name() = 'tfoot']">
|
3846
3901
|
<xsl:attribute name="border">solid black 0</xsl:attribute>
|
3847
3902
|
</xsl:if>
|
@@ -3888,14 +3943,20 @@
|
|
3888
3943
|
|
3889
3944
|
|
3890
3945
|
|
3946
|
+
|
3891
3947
|
<xsl:attribute name="font-size">8pt</xsl:attribute>
|
3892
3948
|
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
|
3893
3949
|
|
3894
3950
|
|
3895
3951
|
|
3896
3952
|
|
3953
|
+
|
3954
|
+
<!-- Table's note name (NOTE, for example) -->
|
3955
|
+
|
3897
3956
|
<fo:inline padding-right="2mm">
|
3898
3957
|
|
3958
|
+
|
3959
|
+
|
3899
3960
|
|
3900
3961
|
|
3901
3962
|
|
@@ -3903,6 +3964,8 @@
|
|
3903
3964
|
|
3904
3965
|
</fo:inline>
|
3905
3966
|
|
3967
|
+
|
3968
|
+
|
3906
3969
|
<xsl:apply-templates mode="process"/>
|
3907
3970
|
</fo:block>
|
3908
3971
|
|
@@ -3910,18 +3973,18 @@
|
|
3910
3973
|
<xsl:apply-templates/>
|
3911
3974
|
</xsl:template><xsl:template name="fn_display">
|
3912
3975
|
<xsl:variable name="references">
|
3976
|
+
|
3913
3977
|
<xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
|
3914
|
-
<
|
3915
|
-
|
3916
|
-
|
3917
|
-
<xsl:apply-templates/>
|
3918
|
-
</fn>
|
3978
|
+
<xsl:call-template name="create_fn"/>
|
3919
3979
|
</xsl:for-each>
|
3920
3980
|
</xsl:variable>
|
3981
|
+
|
3921
3982
|
<xsl:for-each select="xalan:nodeset($references)//fn">
|
3922
3983
|
<xsl:variable name="reference" select="@reference"/>
|
3923
3984
|
<xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
|
3924
3985
|
<fo:block margin-bottom="12pt">
|
3986
|
+
|
3987
|
+
|
3925
3988
|
|
3926
3989
|
|
3927
3990
|
|
@@ -3936,6 +3999,7 @@
|
|
3936
3999
|
|
3937
4000
|
|
3938
4001
|
|
4002
|
+
|
3939
4003
|
<xsl:attribute name="baseline-shift">30%</xsl:attribute>
|
3940
4004
|
<xsl:attribute name="font-size">70%</xsl:attribute>
|
3941
4005
|
|
@@ -3946,6 +4010,7 @@
|
|
3946
4010
|
<xsl:value-of select="@reference"/>
|
3947
4011
|
|
3948
4012
|
|
4013
|
+
|
3949
4014
|
</fo:inline>
|
3950
4015
|
<fo:inline>
|
3951
4016
|
|
@@ -3955,6 +4020,12 @@
|
|
3955
4020
|
</fo:block>
|
3956
4021
|
</xsl:if>
|
3957
4022
|
</xsl:for-each>
|
4023
|
+
</xsl:template><xsl:template name="create_fn">
|
4024
|
+
<fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
|
4025
|
+
|
4026
|
+
|
4027
|
+
<xsl:apply-templates/>
|
4028
|
+
</fn>
|
3958
4029
|
</xsl:template><xsl:template name="fn_name_display">
|
3959
4030
|
<!-- <xsl:variable name="references">
|
3960
4031
|
<xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
|
@@ -4090,7 +4161,9 @@
|
|
4090
4161
|
<!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
|
4091
4162
|
<fo:inline font-size="80%" keep-with-previous.within-line="always">
|
4092
4163
|
|
4093
|
-
|
4164
|
+
|
4165
|
+
|
4166
|
+
<xsl:if test="ancestor::*[local-name()='table']">
|
4094
4167
|
<xsl:attribute name="font-weight">normal</xsl:attribute>
|
4095
4168
|
<!-- <xsl:attribute name="alignment-baseline">hanging</xsl:attribute> -->
|
4096
4169
|
<xsl:attribute name="baseline-shift">15%</xsl:attribute>
|
@@ -4102,11 +4175,13 @@
|
|
4102
4175
|
|
4103
4176
|
|
4104
4177
|
|
4178
|
+
|
4105
4179
|
<fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
|
4106
4180
|
|
4107
4181
|
|
4108
4182
|
<xsl:value-of select="@reference"/>
|
4109
4183
|
|
4184
|
+
|
4110
4185
|
</fo:basic-link>
|
4111
4186
|
</fo:inline>
|
4112
4187
|
</xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
|
@@ -4984,19 +5059,6 @@
|
|
4984
5059
|
<!-- replace start and end spaces to non-break space -->
|
4985
5060
|
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
|
4986
5061
|
</xsl:copy>
|
4987
|
-
</xsl:template><xsl:template match="mathml:mi[. = ',' and not(following-sibling::*[1][local-name() = 'mtext' and text() = ' '])]" mode="mathml">
|
4988
|
-
<xsl:copy>
|
4989
|
-
<xsl:apply-templates select="@*|node()" mode="mathml"/>
|
4990
|
-
</xsl:copy>
|
4991
|
-
<xsl:choose>
|
4992
|
-
<!-- if in msub, then don't add space -->
|
4993
|
-
<xsl:when test="ancestor::mathml:mrow[parent::mathml:msub and preceding-sibling::*[1][self::mathml:mrow]]"/>
|
4994
|
-
<!-- if next char in digit, don't add space -->
|
4995
|
-
<xsl:when test="translate(substring(following-sibling::*[1]/text(),1,1),'0123456789','') = ''"/>
|
4996
|
-
<xsl:otherwise>
|
4997
|
-
<mathml:mspace width="0.5ex"/>
|
4998
|
-
</xsl:otherwise>
|
4999
|
-
</xsl:choose>
|
5000
5062
|
</xsl:template><xsl:template match="mathml:math/*[local-name()='unit']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='prefix']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='dimension']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='quantity']" mode="mathml"/><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
|
5001
5063
|
<xsl:variable name="target">
|
5002
5064
|
<xsl:choose>
|
@@ -5025,6 +5087,7 @@
|
|
5025
5087
|
</xsl:if>
|
5026
5088
|
|
5027
5089
|
|
5090
|
+
|
5028
5091
|
<xsl:choose>
|
5029
5092
|
<xsl:when test="$target_text = ''">
|
5030
5093
|
<xsl:apply-templates/>
|
@@ -5133,6 +5196,7 @@
|
|
5133
5196
|
|
5134
5197
|
|
5135
5198
|
|
5199
|
+
|
5136
5200
|
<fo:block-container margin-left="0mm">
|
5137
5201
|
|
5138
5202
|
|
@@ -5307,7 +5371,24 @@
|
|
5307
5371
|
</fo:instream-foreign-object>
|
5308
5372
|
</xsl:when>
|
5309
5373
|
<xsl:otherwise>
|
5310
|
-
<fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"
|
5374
|
+
<fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style">
|
5375
|
+
<xsl:if test="not(@mimetype = 'image/svg+xml') and ../*[local-name() = 'name'] and not(ancestor::*[local-name() = 'table'])">
|
5376
|
+
|
5377
|
+
<xsl:variable name="img_src">
|
5378
|
+
<xsl:choose>
|
5379
|
+
<xsl:when test="not(starts-with(@src, 'data:'))"><xsl:value-of select="concat($basepath, @src)"/></xsl:when>
|
5380
|
+
<xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
|
5381
|
+
</xsl:choose>
|
5382
|
+
</xsl:variable>
|
5383
|
+
|
5384
|
+
<xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $width_effective, $height_effective)"/>
|
5385
|
+
<xsl:if test="number($scale) < 100">
|
5386
|
+
<xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
|
5387
|
+
</xsl:if>
|
5388
|
+
|
5389
|
+
</xsl:if>
|
5390
|
+
|
5391
|
+
</fo:external-graphic>
|
5311
5392
|
</xsl:otherwise>
|
5312
5393
|
</xsl:choose>
|
5313
5394
|
|
@@ -5375,6 +5456,253 @@
|
|
5375
5456
|
<xsl:param name="height"/>
|
5376
5457
|
<line xmlns="http://www.w3.org/2000/svg" x1="0" y1="0" x2="{$width}" y2="{$height}" style="stroke: rgb(255, 0, 0); stroke-width:4px; "/>
|
5377
5458
|
<line xmlns="http://www.w3.org/2000/svg" x1="0" y1="{$height}" x2="{$width}" y2="0" style="stroke: rgb(255, 0, 0); stroke-width:4px; "/>
|
5459
|
+
</xsl:template><xsl:variable name="figure_name_height">14</xsl:variable><xsl:variable name="width_effective" select="$pageWidth - $marginLeftRight1 - $marginLeftRight2"/><xsl:variable name="height_effective" select="$pageHeight - $marginTop - $marginBottom - $figure_name_height"/><xsl:variable name="image_dpi" select="96"/><xsl:variable name="width_effective_px" select="$width_effective div 25.4 * $image_dpi"/><xsl:variable name="height_effective_px" select="$height_effective div 25.4 * $image_dpi"/><xsl:template match="*[local-name() = 'figure'][not(*[local-name() = 'image']) and *[local-name() = 'svg']]/*[local-name() = 'name']/*[local-name() = 'bookmark']" priority="2"/><xsl:template match="*[local-name() = 'figure'][not(*[local-name() = 'image'])]/*[local-name() = 'svg']" priority="2" name="image_svg">
|
5460
|
+
<xsl:param name="name"/>
|
5461
|
+
|
5462
|
+
<xsl:variable name="svg_content">
|
5463
|
+
<xsl:apply-templates select="." mode="svg_update"/>
|
5464
|
+
</xsl:variable>
|
5465
|
+
|
5466
|
+
<xsl:variable name="alt-text">
|
5467
|
+
<xsl:choose>
|
5468
|
+
<xsl:when test="normalize-space(../*[local-name() = 'name']) != ''">
|
5469
|
+
<xsl:value-of select="../*[local-name() = 'name']"/>
|
5470
|
+
</xsl:when>
|
5471
|
+
<xsl:when test="normalize-space($name) != ''">
|
5472
|
+
<xsl:value-of select="$name"/>
|
5473
|
+
</xsl:when>
|
5474
|
+
<xsl:otherwise>Figure</xsl:otherwise>
|
5475
|
+
</xsl:choose>
|
5476
|
+
</xsl:variable>
|
5477
|
+
|
5478
|
+
<xsl:choose>
|
5479
|
+
<xsl:when test=".//*[local-name() = 'a'][*[local-name() = 'rect'] or *[local-name() = 'polygon'] or *[local-name() = 'circle'] or *[local-name() = 'ellipse']]">
|
5480
|
+
<fo:block>
|
5481
|
+
<xsl:variable name="width" select="@width"/>
|
5482
|
+
<xsl:variable name="height" select="@height"/>
|
5483
|
+
|
5484
|
+
<xsl:variable name="scale_x">
|
5485
|
+
<xsl:choose>
|
5486
|
+
<xsl:when test="$width > $width_effective_px">
|
5487
|
+
<xsl:value-of select="$width_effective_px div $width"/>
|
5488
|
+
</xsl:when>
|
5489
|
+
<xsl:otherwise>1</xsl:otherwise>
|
5490
|
+
</xsl:choose>
|
5491
|
+
</xsl:variable>
|
5492
|
+
|
5493
|
+
<xsl:variable name="scale_y">
|
5494
|
+
<xsl:choose>
|
5495
|
+
<xsl:when test="$height * $scale_x > $height_effective_px">
|
5496
|
+
<xsl:value-of select="$height_effective_px div ($height * $scale_x)"/>
|
5497
|
+
</xsl:when>
|
5498
|
+
<xsl:otherwise>1</xsl:otherwise>
|
5499
|
+
</xsl:choose>
|
5500
|
+
</xsl:variable>
|
5501
|
+
|
5502
|
+
<xsl:variable name="scale">
|
5503
|
+
<xsl:choose>
|
5504
|
+
<xsl:when test="$scale_y != 1">
|
5505
|
+
<xsl:value-of select="$scale_x * $scale_y"/>
|
5506
|
+
</xsl:when>
|
5507
|
+
<xsl:otherwise>
|
5508
|
+
<xsl:value-of select="$scale_x"/>
|
5509
|
+
</xsl:otherwise>
|
5510
|
+
</xsl:choose>
|
5511
|
+
</xsl:variable>
|
5512
|
+
|
5513
|
+
<xsl:variable name="width_scale" select="round($width * $scale)"/>
|
5514
|
+
<xsl:variable name="height_scale" select="round($height * $scale)"/>
|
5515
|
+
|
5516
|
+
<fo:table table-layout="fixed" width="100%">
|
5517
|
+
<fo:table-column column-width="proportional-column-width(1)"/>
|
5518
|
+
<fo:table-column column-width="{$width_scale}px"/>
|
5519
|
+
<fo:table-column column-width="proportional-column-width(1)"/>
|
5520
|
+
<fo:table-body>
|
5521
|
+
<fo:table-row>
|
5522
|
+
<fo:table-cell column-number="2">
|
5523
|
+
<fo:block>
|
5524
|
+
<fo:block-container width="{$width_scale}px" height="{$height_scale}px">
|
5525
|
+
<xsl:if test="../*[local-name() = 'name']/*[local-name() = 'bookmark']">
|
5526
|
+
<fo:block line-height="0" font-size="0">
|
5527
|
+
<xsl:for-each select="../*[local-name() = 'name']/*[local-name() = 'bookmark']">
|
5528
|
+
<xsl:call-template name="bookmark"/>
|
5529
|
+
</xsl:for-each>
|
5530
|
+
</fo:block>
|
5531
|
+
</xsl:if>
|
5532
|
+
<fo:block text-depth="0" line-height="0" font-size="0">
|
5533
|
+
|
5534
|
+
<fo:instream-foreign-object fox:alt-text="{$alt-text}">
|
5535
|
+
<xsl:attribute name="width">100%</xsl:attribute>
|
5536
|
+
<xsl:attribute name="content-height">100%</xsl:attribute>
|
5537
|
+
<xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
|
5538
|
+
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
5539
|
+
|
5540
|
+
<xsl:apply-templates select="xalan:nodeset($svg_content)" mode="svg_remove_a"/>
|
5541
|
+
</fo:instream-foreign-object>
|
5542
|
+
</fo:block>
|
5543
|
+
|
5544
|
+
<xsl:apply-templates select=".//*[local-name() = 'a'][*[local-name() = 'rect'] or *[local-name() = 'polygon'] or *[local-name() = 'circle'] or *[local-name() = 'ellipse']]" mode="svg_imagemap_links">
|
5545
|
+
<xsl:with-param name="scale" select="$scale"/>
|
5546
|
+
</xsl:apply-templates>
|
5547
|
+
</fo:block-container>
|
5548
|
+
</fo:block>
|
5549
|
+
</fo:table-cell>
|
5550
|
+
</fo:table-row>
|
5551
|
+
</fo:table-body>
|
5552
|
+
</fo:table>
|
5553
|
+
</fo:block>
|
5554
|
+
|
5555
|
+
</xsl:when>
|
5556
|
+
<xsl:otherwise>
|
5557
|
+
<fo:block xsl:use-attribute-sets="image-style">
|
5558
|
+
<fo:instream-foreign-object fox:alt-text="{$alt-text}">
|
5559
|
+
<xsl:attribute name="width">100%</xsl:attribute>
|
5560
|
+
<xsl:attribute name="content-height">100%</xsl:attribute>
|
5561
|
+
<xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
|
5562
|
+
<xsl:variable name="svg_width" select="xalan:nodeset($svg_content)/*/@width"/>
|
5563
|
+
<xsl:variable name="svg_height" select="xalan:nodeset($svg_content)/*/@height"/>
|
5564
|
+
<!-- effective height 297 - 27.4 - 13 = 256.6 -->
|
5565
|
+
<!-- effective width 210 - 12.5 - 25 = 172.5 -->
|
5566
|
+
<!-- effective height / width = 1.48, 1.4 - with title -->
|
5567
|
+
<xsl:if test="$svg_height > ($svg_width * 1.4)"> <!-- for images with big height -->
|
5568
|
+
<xsl:variable name="width" select="(($svg_width * 1.4) div $svg_height) * 100"/>
|
5569
|
+
<xsl:attribute name="width"><xsl:value-of select="$width"/>%</xsl:attribute>
|
5570
|
+
</xsl:if>
|
5571
|
+
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
5572
|
+
<xsl:copy-of select="$svg_content"/>
|
5573
|
+
</fo:instream-foreign-object>
|
5574
|
+
</fo:block>
|
5575
|
+
</xsl:otherwise>
|
5576
|
+
</xsl:choose>
|
5577
|
+
</xsl:template><xsl:template match="@*|node()" mode="svg_update">
|
5578
|
+
<xsl:copy>
|
5579
|
+
<xsl:apply-templates select="@*|node()" mode="svg_update"/>
|
5580
|
+
</xsl:copy>
|
5581
|
+
</xsl:template><xsl:template match="*[local-name() = 'image']/@href" mode="svg_update">
|
5582
|
+
<xsl:attribute name="href" namespace="http://www.w3.org/1999/xlink">
|
5583
|
+
<xsl:value-of select="."/>
|
5584
|
+
</xsl:attribute>
|
5585
|
+
</xsl:template><xsl:template match="*[local-name() = 'svg'][not(@width and @height)]" mode="svg_update">
|
5586
|
+
<xsl:copy>
|
5587
|
+
<xsl:apply-templates select="@*" mode="svg_update"/>
|
5588
|
+
<xsl:variable name="viewbox">
|
5589
|
+
<xsl:call-template name="split">
|
5590
|
+
<xsl:with-param name="pText" select="@viewBox"/>
|
5591
|
+
<xsl:with-param name="sep" select="' '"/>
|
5592
|
+
</xsl:call-template>
|
5593
|
+
</xsl:variable>
|
5594
|
+
<xsl:attribute name="width">
|
5595
|
+
<xsl:value-of select="round(xalan:nodeset($viewbox)//item[3])"/>
|
5596
|
+
</xsl:attribute>
|
5597
|
+
<xsl:attribute name="height">
|
5598
|
+
<xsl:value-of select="round(xalan:nodeset($viewbox)//item[4])"/>
|
5599
|
+
</xsl:attribute>
|
5600
|
+
<xsl:apply-templates mode="svg_update"/>
|
5601
|
+
</xsl:copy>
|
5602
|
+
</xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][@mimetype = 'image/svg+xml' and @src[not(starts-with(., 'data:image/'))]]" priority="2">
|
5603
|
+
<xsl:variable name="svg_content" select="document(@src)"/>
|
5604
|
+
<xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
|
5605
|
+
<xsl:for-each select="xalan:nodeset($svg_content)/node()">
|
5606
|
+
<xsl:call-template name="image_svg">
|
5607
|
+
<xsl:with-param name="name" select="$name"/>
|
5608
|
+
</xsl:call-template>
|
5609
|
+
</xsl:for-each>
|
5610
|
+
</xsl:template><xsl:template match="@*|node()" mode="svg_remove_a">
|
5611
|
+
<xsl:copy>
|
5612
|
+
<xsl:apply-templates select="@*|node()" mode="svg_remove_a"/>
|
5613
|
+
</xsl:copy>
|
5614
|
+
</xsl:template><xsl:template match="*[local-name() = 'a']" mode="svg_remove_a">
|
5615
|
+
<xsl:apply-templates mode="svg_remove_a"/>
|
5616
|
+
</xsl:template><xsl:template match="*[local-name() = 'a']" mode="svg_imagemap_links">
|
5617
|
+
<xsl:param name="scale"/>
|
5618
|
+
<xsl:variable name="dest">
|
5619
|
+
<xsl:choose>
|
5620
|
+
<xsl:when test="starts-with(@href, '#')">
|
5621
|
+
<xsl:value-of select="substring-after(@href, '#')"/>
|
5622
|
+
</xsl:when>
|
5623
|
+
<xsl:otherwise>
|
5624
|
+
<xsl:value-of select="@href"/>
|
5625
|
+
</xsl:otherwise>
|
5626
|
+
</xsl:choose>
|
5627
|
+
</xsl:variable>
|
5628
|
+
<xsl:for-each select="./*[local-name() = 'rect']">
|
5629
|
+
<xsl:call-template name="insertSVGMapLink">
|
5630
|
+
<xsl:with-param name="left" select="floor(@x * $scale)"/>
|
5631
|
+
<xsl:with-param name="top" select="floor(@y * $scale)"/>
|
5632
|
+
<xsl:with-param name="width" select="floor(@width * $scale)"/>
|
5633
|
+
<xsl:with-param name="height" select="floor(@height * $scale)"/>
|
5634
|
+
<xsl:with-param name="dest" select="$dest"/>
|
5635
|
+
</xsl:call-template>
|
5636
|
+
</xsl:for-each>
|
5637
|
+
|
5638
|
+
<xsl:for-each select="./*[local-name() = 'polygon']">
|
5639
|
+
<xsl:variable name="points">
|
5640
|
+
<xsl:call-template name="split">
|
5641
|
+
<xsl:with-param name="pText" select="@points"/>
|
5642
|
+
</xsl:call-template>
|
5643
|
+
</xsl:variable>
|
5644
|
+
<xsl:variable name="x_coords">
|
5645
|
+
<xsl:for-each select="xalan:nodeset($points)//item[position() mod 2 = 1]">
|
5646
|
+
<xsl:sort select="." data-type="number"/>
|
5647
|
+
<x><xsl:value-of select="."/></x>
|
5648
|
+
</xsl:for-each>
|
5649
|
+
</xsl:variable>
|
5650
|
+
<xsl:variable name="y_coords">
|
5651
|
+
<xsl:for-each select="xalan:nodeset($points)//item[position() mod 2 = 0]">
|
5652
|
+
<xsl:sort select="." data-type="number"/>
|
5653
|
+
<y><xsl:value-of select="."/></y>
|
5654
|
+
</xsl:for-each>
|
5655
|
+
</xsl:variable>
|
5656
|
+
<xsl:variable name="x" select="xalan:nodeset($x_coords)//x[1]"/>
|
5657
|
+
<xsl:variable name="y" select="xalan:nodeset($y_coords)//y[1]"/>
|
5658
|
+
<xsl:variable name="width" select="xalan:nodeset($x_coords)//x[last()] - $x"/>
|
5659
|
+
<xsl:variable name="height" select="xalan:nodeset($y_coords)//y[last()] - $y"/>
|
5660
|
+
<xsl:call-template name="insertSVGMapLink">
|
5661
|
+
<xsl:with-param name="left" select="floor($x * $scale)"/>
|
5662
|
+
<xsl:with-param name="top" select="floor($y * $scale)"/>
|
5663
|
+
<xsl:with-param name="width" select="floor($width * $scale)"/>
|
5664
|
+
<xsl:with-param name="height" select="floor($height * $scale)"/>
|
5665
|
+
<xsl:with-param name="dest" select="$dest"/>
|
5666
|
+
</xsl:call-template>
|
5667
|
+
</xsl:for-each>
|
5668
|
+
|
5669
|
+
<xsl:for-each select="./*[local-name() = 'circle']">
|
5670
|
+
<xsl:call-template name="insertSVGMapLink">
|
5671
|
+
<xsl:with-param name="left" select="floor((@cx - @r) * $scale)"/>
|
5672
|
+
<xsl:with-param name="top" select="floor((@cy - @r) * $scale)"/>
|
5673
|
+
<xsl:with-param name="width" select="floor(@r * 2 * $scale)"/>
|
5674
|
+
<xsl:with-param name="height" select="floor(@r * 2 * $scale)"/>
|
5675
|
+
<xsl:with-param name="dest" select="$dest"/>
|
5676
|
+
</xsl:call-template>
|
5677
|
+
</xsl:for-each>
|
5678
|
+
<xsl:for-each select="./*[local-name() = 'ellipse']">
|
5679
|
+
<xsl:call-template name="insertSVGMapLink">
|
5680
|
+
<xsl:with-param name="left" select="floor((@cx - @rx) * $scale)"/>
|
5681
|
+
<xsl:with-param name="top" select="floor((@cy - @ry) * $scale)"/>
|
5682
|
+
<xsl:with-param name="width" select="floor(@rx * 2 * $scale)"/>
|
5683
|
+
<xsl:with-param name="height" select="floor(@ry * 2 * $scale)"/>
|
5684
|
+
<xsl:with-param name="dest" select="$dest"/>
|
5685
|
+
</xsl:call-template>
|
5686
|
+
</xsl:for-each>
|
5687
|
+
</xsl:template><xsl:template name="insertSVGMapLink">
|
5688
|
+
<xsl:param name="left"/>
|
5689
|
+
<xsl:param name="top"/>
|
5690
|
+
<xsl:param name="width"/>
|
5691
|
+
<xsl:param name="height"/>
|
5692
|
+
<xsl:param name="dest"/>
|
5693
|
+
<fo:block-container position="absolute" left="{$left}px" top="{$top}px" width="{$width}px" height="{$height}px">
|
5694
|
+
<fo:block font-size="1pt">
|
5695
|
+
<fo:basic-link internal-destination="{$dest}" fox:alt-text="svg link">
|
5696
|
+
<fo:inline-container inline-progression-dimension="100%">
|
5697
|
+
<fo:block-container height="{$height - 1}px" width="100%">
|
5698
|
+
<!-- DEBUG <xsl:if test="local-name()='polygon'">
|
5699
|
+
<xsl:attribute name="background-color">magenta</xsl:attribute>
|
5700
|
+
</xsl:if> -->
|
5701
|
+
<fo:block> </fo:block></fo:block-container>
|
5702
|
+
</fo:inline-container>
|
5703
|
+
</fo:basic-link>
|
5704
|
+
</fo:block>
|
5705
|
+
</fo:block-container>
|
5378
5706
|
</xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
|
5379
5707
|
<xsl:apply-templates mode="contents"/>
|
5380
5708
|
<xsl:text> </xsl:text>
|
@@ -5403,28 +5731,39 @@
|
|
5403
5731
|
<xsl:when test="count(xalan:nodeset($contents)/doc) > 1">
|
5404
5732
|
<xsl:for-each select="xalan:nodeset($contents)/doc">
|
5405
5733
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
5734
|
+
<xsl:if test="@bundle = 'true'">
|
5735
|
+
<xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
|
5736
|
+
</xsl:if>
|
5406
5737
|
<fo:bookmark-title>
|
5407
|
-
<xsl:variable name="bookmark-title_">
|
5408
|
-
<xsl:call-template name="getLangVersion">
|
5409
|
-
<xsl:with-param name="lang" select="@lang"/>
|
5410
|
-
<xsl:with-param name="doctype" select="@doctype"/>
|
5411
|
-
<xsl:with-param name="title" select="@title-part"/>
|
5412
|
-
</xsl:call-template>
|
5413
|
-
</xsl:variable>
|
5414
5738
|
<xsl:choose>
|
5415
|
-
<xsl:when test="normalize-space(
|
5416
|
-
<xsl:
|
5417
|
-
|
5418
|
-
|
5739
|
+
<xsl:when test="not(normalize-space(@bundle) = 'true')"> <!-- 'bundle' means several different documents (not language versions) in one xml -->
|
5740
|
+
<xsl:variable name="bookmark-title_">
|
5741
|
+
<xsl:call-template name="getLangVersion">
|
5742
|
+
<xsl:with-param name="lang" select="@lang"/>
|
5743
|
+
<xsl:with-param name="doctype" select="@doctype"/>
|
5744
|
+
<xsl:with-param name="title" select="@title-part"/>
|
5745
|
+
</xsl:call-template>
|
5746
|
+
</xsl:variable>
|
5419
5747
|
<xsl:choose>
|
5420
|
-
<xsl:when test="
|
5421
|
-
|
5422
|
-
|
5423
|
-
<xsl:otherwise
|
5748
|
+
<xsl:when test="normalize-space($bookmark-title_) != ''">
|
5749
|
+
<xsl:value-of select="normalize-space($bookmark-title_)"/>
|
5750
|
+
</xsl:when>
|
5751
|
+
<xsl:otherwise>
|
5752
|
+
<xsl:choose>
|
5753
|
+
<xsl:when test="@lang = 'en'">English</xsl:when>
|
5754
|
+
<xsl:when test="@lang = 'fr'">Français</xsl:when>
|
5755
|
+
<xsl:when test="@lang = 'de'">Deutsche</xsl:when>
|
5756
|
+
<xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
|
5757
|
+
</xsl:choose>
|
5758
|
+
</xsl:otherwise>
|
5424
5759
|
</xsl:choose>
|
5760
|
+
</xsl:when>
|
5761
|
+
<xsl:otherwise>
|
5762
|
+
<xsl:value-of select="@title-part"/>
|
5425
5763
|
</xsl:otherwise>
|
5426
5764
|
</xsl:choose>
|
5427
5765
|
</fo:bookmark-title>
|
5766
|
+
|
5428
5767
|
<xsl:apply-templates select="contents/item" mode="bookmark"/>
|
5429
5768
|
|
5430
5769
|
<xsl:call-template name="insertFigureBookmarks">
|
@@ -5523,16 +5862,23 @@
|
|
5523
5862
|
<xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
|
5524
5863
|
</xsl:choose>
|
5525
5864
|
</xsl:template><xsl:template match="item" mode="bookmark">
|
5526
|
-
<
|
5527
|
-
|
5528
|
-
|
5529
|
-
|
5530
|
-
<xsl:
|
5531
|
-
|
5532
|
-
|
5533
|
-
|
5534
|
-
|
5535
|
-
|
5865
|
+
<xsl:choose>
|
5866
|
+
<xsl:when test="@id != ''">
|
5867
|
+
<fo:bookmark internal-destination="{@id}" starting-state="hide">
|
5868
|
+
<fo:bookmark-title>
|
5869
|
+
<xsl:if test="@section != ''">
|
5870
|
+
<xsl:value-of select="@section"/>
|
5871
|
+
<xsl:text> </xsl:text>
|
5872
|
+
</xsl:if>
|
5873
|
+
<xsl:value-of select="normalize-space(title)"/>
|
5874
|
+
</fo:bookmark-title>
|
5875
|
+
<xsl:apply-templates mode="bookmark"/>
|
5876
|
+
</fo:bookmark>
|
5877
|
+
</xsl:when>
|
5878
|
+
<xsl:otherwise>
|
5879
|
+
<xsl:apply-templates mode="bookmark"/>
|
5880
|
+
</xsl:otherwise>
|
5881
|
+
</xsl:choose>
|
5536
5882
|
</xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
|
5537
5883
|
<xsl:if test="normalize-space() != ''">
|
5538
5884
|
<fo:block xsl:use-attribute-sets="figure-name-style">
|
@@ -5898,7 +6244,19 @@
|
|
5898
6244
|
</fo:inline>
|
5899
6245
|
</xsl:if>
|
5900
6246
|
</xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'p']">
|
5901
|
-
<
|
6247
|
+
<xsl:variable name="element">inline
|
6248
|
+
|
6249
|
+
</xsl:variable>
|
6250
|
+
<xsl:choose>
|
6251
|
+
<xsl:when test="contains($element, 'block')">
|
6252
|
+
<fo:block xsl:use-attribute-sets="example-p-style">
|
6253
|
+
<xsl:apply-templates/>
|
6254
|
+
</fo:block>
|
6255
|
+
</xsl:when>
|
6256
|
+
<xsl:otherwise>
|
6257
|
+
<fo:inline><xsl:apply-templates/></fo:inline>
|
6258
|
+
</xsl:otherwise>
|
6259
|
+
</xsl:choose>
|
5902
6260
|
</xsl:template><xsl:template match="*[local-name() = 'example']">
|
5903
6261
|
<fo:block id="{@id}" xsl:use-attribute-sets="example-style">
|
5904
6262
|
|
@@ -6091,7 +6449,9 @@
|
|
6091
6449
|
|
6092
6450
|
|
6093
6451
|
</xsl:if>
|
6094
|
-
|
6452
|
+
|
6453
|
+
|
6454
|
+
|
6095
6455
|
<fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
|
6096
6456
|
<xsl:if test="normalize-space(@citeas) = ''">
|
6097
6457
|
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
|
@@ -6100,6 +6460,7 @@
|
|
6100
6460
|
|
6101
6461
|
|
6102
6462
|
|
6463
|
+
|
6103
6464
|
</xsl:if>
|
6104
6465
|
|
6105
6466
|
<xsl:apply-templates/>
|
@@ -6475,7 +6836,6 @@
|
|
6475
6836
|
</xsl:template><xsl:template name="processBibitem">
|
6476
6837
|
|
6477
6838
|
|
6478
|
-
<!-- end BIPM bibitem processing-->
|
6479
6839
|
|
6480
6840
|
|
6481
6841
|
|
@@ -6940,20 +7300,40 @@
|
|
6940
7300
|
</xsl:call-template>
|
6941
7301
|
</xsl:if>
|
6942
7302
|
</xsl:template><xsl:template name="getLocalizedString">
|
6943
|
-
<xsl:param name="key"/>
|
7303
|
+
<xsl:param name="key"/>
|
7304
|
+
<xsl:param name="formatted">false</xsl:param>
|
6944
7305
|
|
6945
7306
|
<xsl:variable name="curr_lang">
|
6946
7307
|
<xsl:call-template name="getLang"/>
|
6947
7308
|
</xsl:variable>
|
6948
7309
|
|
6949
|
-
<xsl:variable name="data_value"
|
7310
|
+
<xsl:variable name="data_value">
|
7311
|
+
<xsl:choose>
|
7312
|
+
<xsl:when test="$formatted = 'true'">
|
7313
|
+
<xsl:apply-templates select="xalan:nodeset($bibdata)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
|
7314
|
+
</xsl:when>
|
7315
|
+
<xsl:otherwise>
|
7316
|
+
<xsl:value-of select="normalize-space(xalan:nodeset($bibdata)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang])"/>
|
7317
|
+
</xsl:otherwise>
|
7318
|
+
</xsl:choose>
|
7319
|
+
</xsl:variable>
|
6950
7320
|
|
6951
7321
|
<xsl:choose>
|
6952
|
-
<xsl:when test="$data_value != ''">
|
6953
|
-
<xsl:
|
7322
|
+
<xsl:when test="normalize-space($data_value) != ''">
|
7323
|
+
<xsl:choose>
|
7324
|
+
<xsl:when test="$formatted = 'true'"><xsl:copy-of select="$data_value"/></xsl:when>
|
7325
|
+
<xsl:otherwise><xsl:value-of select="$data_value"/></xsl:otherwise>
|
7326
|
+
</xsl:choose>
|
6954
7327
|
</xsl:when>
|
6955
7328
|
<xsl:when test="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]">
|
6956
|
-
<xsl:
|
7329
|
+
<xsl:choose>
|
7330
|
+
<xsl:when test="$formatted = 'true'">
|
7331
|
+
<xsl:apply-templates select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
|
7332
|
+
</xsl:when>
|
7333
|
+
<xsl:otherwise>
|
7334
|
+
<xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
|
7335
|
+
</xsl:otherwise>
|
7336
|
+
</xsl:choose>
|
6957
7337
|
</xsl:when>
|
6958
7338
|
<xsl:otherwise>
|
6959
7339
|
<xsl:variable name="key_">
|
@@ -6964,7 +7344,7 @@
|
|
6964
7344
|
<xsl:value-of select="$key_"/>
|
6965
7345
|
</xsl:otherwise>
|
6966
7346
|
</xsl:choose>
|
6967
|
-
|
7347
|
+
|
6968
7348
|
</xsl:template><xsl:template name="setTrackChangesStyles">
|
6969
7349
|
<xsl:param name="isAdded"/>
|
6970
7350
|
<xsl:param name="isDeleted"/>
|
@@ -7015,4 +7395,100 @@
|
|
7015
7395
|
<xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
|
7016
7396
|
</xsl:choose>
|
7017
7397
|
</xsl:attribute>
|
7398
|
+
</xsl:template><xsl:template name="number-to-words">
|
7399
|
+
<xsl:param name="number"/>
|
7400
|
+
<xsl:param name="first"/>
|
7401
|
+
<xsl:if test="$number != ''">
|
7402
|
+
<xsl:variable name="words">
|
7403
|
+
<words>
|
7404
|
+
<word cardinal="1">One-</word>
|
7405
|
+
<word ordinal="1">First </word>
|
7406
|
+
<word cardinal="2">Two-</word>
|
7407
|
+
<word ordinal="2">Second </word>
|
7408
|
+
<word cardinal="3">Three-</word>
|
7409
|
+
<word ordinal="3">Third </word>
|
7410
|
+
<word cardinal="4">Four-</word>
|
7411
|
+
<word ordinal="4">Fourth </word>
|
7412
|
+
<word cardinal="5">Five-</word>
|
7413
|
+
<word ordinal="5">Fifth </word>
|
7414
|
+
<word cardinal="6">Six-</word>
|
7415
|
+
<word ordinal="6">Sixth </word>
|
7416
|
+
<word cardinal="7">Seven-</word>
|
7417
|
+
<word ordinal="7">Seventh </word>
|
7418
|
+
<word cardinal="8">Eight-</word>
|
7419
|
+
<word ordinal="8">Eighth </word>
|
7420
|
+
<word cardinal="9">Nine-</word>
|
7421
|
+
<word ordinal="9">Ninth </word>
|
7422
|
+
<word ordinal="10">Tenth </word>
|
7423
|
+
<word ordinal="11">Eleventh </word>
|
7424
|
+
<word ordinal="12">Twelfth </word>
|
7425
|
+
<word ordinal="13">Thirteenth </word>
|
7426
|
+
<word ordinal="14">Fourteenth </word>
|
7427
|
+
<word ordinal="15">Fifteenth </word>
|
7428
|
+
<word ordinal="16">Sixteenth </word>
|
7429
|
+
<word ordinal="17">Seventeenth </word>
|
7430
|
+
<word ordinal="18">Eighteenth </word>
|
7431
|
+
<word ordinal="19">Nineteenth </word>
|
7432
|
+
<word cardinal="20">Twenty-</word>
|
7433
|
+
<word ordinal="20">Twentieth </word>
|
7434
|
+
<word cardinal="30">Thirty-</word>
|
7435
|
+
<word ordinal="30">Thirtieth </word>
|
7436
|
+
<word cardinal="40">Forty-</word>
|
7437
|
+
<word ordinal="40">Fortieth </word>
|
7438
|
+
<word cardinal="50">Fifty-</word>
|
7439
|
+
<word ordinal="50">Fiftieth </word>
|
7440
|
+
<word cardinal="60">Sixty-</word>
|
7441
|
+
<word ordinal="60">Sixtieth </word>
|
7442
|
+
<word cardinal="70">Seventy-</word>
|
7443
|
+
<word ordinal="70">Seventieth </word>
|
7444
|
+
<word cardinal="80">Eighty-</word>
|
7445
|
+
<word ordinal="80">Eightieth </word>
|
7446
|
+
<word cardinal="90">Ninety-</word>
|
7447
|
+
<word ordinal="90">Ninetieth </word>
|
7448
|
+
<word cardinal="100">Hundred-</word>
|
7449
|
+
<word ordinal="100">Hundredth </word>
|
7450
|
+
</words>
|
7451
|
+
</xsl:variable>
|
7452
|
+
|
7453
|
+
<xsl:variable name="ordinal" select="xalan:nodeset($words)//word[@ordinal = $number]/text()"/>
|
7454
|
+
|
7455
|
+
<xsl:variable name="value">
|
7456
|
+
<xsl:choose>
|
7457
|
+
<xsl:when test="$ordinal != ''">
|
7458
|
+
<xsl:value-of select="$ordinal"/>
|
7459
|
+
</xsl:when>
|
7460
|
+
<xsl:otherwise>
|
7461
|
+
<xsl:choose>
|
7462
|
+
<xsl:when test="$number < 100">
|
7463
|
+
<xsl:variable name="decade" select="concat(substring($number,1,1), '0')"/>
|
7464
|
+
<xsl:variable name="digit" select="substring($number,2)"/>
|
7465
|
+
<xsl:value-of select="xalan:nodeset($words)//word[@cardinal = $decade]/text()"/>
|
7466
|
+
<xsl:value-of select="xalan:nodeset($words)//word[@ordinal = $digit]/text()"/>
|
7467
|
+
</xsl:when>
|
7468
|
+
<xsl:otherwise>
|
7469
|
+
<!-- more 100 -->
|
7470
|
+
<xsl:variable name="hundred" select="substring($number,1,1)"/>
|
7471
|
+
<xsl:variable name="digits" select="number(substring($number,2))"/>
|
7472
|
+
<xsl:value-of select="xalan:nodeset($words)//word[@cardinal = $hundred]/text()"/>
|
7473
|
+
<xsl:value-of select="xalan:nodeset($words)//word[@cardinal = '100']/text()"/>
|
7474
|
+
<xsl:call-template name="number-to-words">
|
7475
|
+
<xsl:with-param name="number" select="$digits"/>
|
7476
|
+
</xsl:call-template>
|
7477
|
+
</xsl:otherwise>
|
7478
|
+
</xsl:choose>
|
7479
|
+
</xsl:otherwise>
|
7480
|
+
</xsl:choose>
|
7481
|
+
</xsl:variable>
|
7482
|
+
<xsl:choose>
|
7483
|
+
<xsl:when test="$first = 'true'">
|
7484
|
+
<xsl:variable name="value_lc" select="java:toLowerCase(java:java.lang.String.new($value))"/>
|
7485
|
+
<xsl:call-template name="capitalize">
|
7486
|
+
<xsl:with-param name="str" select="$value_lc"/>
|
7487
|
+
</xsl:call-template>
|
7488
|
+
</xsl:when>
|
7489
|
+
<xsl:otherwise>
|
7490
|
+
<xsl:value-of select="$value"/>
|
7491
|
+
</xsl:otherwise>
|
7492
|
+
</xsl:choose>
|
7493
|
+
</xsl:if>
|
7018
7494
|
</xsl:template></xsl:stylesheet>
|