metanorma-ogc 2.3.1 → 2.3.3

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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  <xsl:output version="1.0" method="xml" encoding="UTF-8" indent="no"/>
4
4
 
5
- <xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" use="@reference"/>
5
+ <xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure' or local-name() = 'localized-strings')] and not(ancestor::*[local-name() = 'name']))]" use="@reference"/>
6
6
 
7
7
  <xsl:variable name="debug">false</xsl:variable>
8
8
 
@@ -128,494 +128,503 @@
128
128
 
129
129
  <xsl:template match="/">
130
130
  <xsl:call-template name="namespaceCheck"/>
131
- <fo:root xml:lang="{$lang}">
132
- <xsl:variable name="root-style">
133
- <root-style xsl:use-attribute-sets="root-style"/>
134
- </xsl:variable>
135
- <xsl:call-template name="insertRootStyle">
136
- <xsl:with-param name="root-style" select="$root-style"/>
137
- </xsl:call-template>
138
- <fo:layout-master-set>
139
- <!-- Cover page -->
140
- <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
141
- <fo:region-body margin-top="16.5mm" margin-bottom="10mm" margin-left="16.5mm" margin-right="14mm"/>
142
- <fo:region-before region-name="cover-page-header" extent="16.5mm"/>
143
- <fo:region-after extent="10mm"/>
144
- <fo:region-start extent="16.5mm"/>
145
- <fo:region-end extent="14mm"/>
146
- </fo:simple-page-master>
147
-
148
- <!-- Preface pages -->
149
- <fo:simple-page-master master-name="preface" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
150
- <fo:region-body margin-top="16.5mm" margin-bottom="22.5mm" margin-left="16.5mm" margin-right="16.5mm"/>
151
- <fo:region-before region-name="header" extent="16.5mm"/>
152
- <fo:region-after region-name="footer" extent="22.5mm"/>
153
- <fo:region-start region-name="left-region" extent="16.5mm"/>
154
- <fo:region-end region-name="right-region" extent="16.5mm"/>
155
- </fo:simple-page-master>
156
-
157
- <!-- Document pages -->
158
- <fo:simple-page-master master-name="document" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
159
- <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
160
- <fo:region-before region-name="header" extent="{$marginTop}mm"/>
161
- <fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
162
- <fo:region-start region-name="left-region" extent="16.5mm"/>
163
- <fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
164
- </fo:simple-page-master>
165
-
166
- </fo:layout-master-set>
167
-
168
- <fo:declarations>
169
- <xsl:call-template name="addPDFUAmeta"/>
170
- </fo:declarations>
171
-
172
- <xsl:call-template name="addBookmarks">
173
- <xsl:with-param name="contents" select="$contents"/>
174
- </xsl:call-template>
175
131
 
176
- <!-- Cover Page -->
177
- <fo:page-sequence master-reference="cover-page" force-page-count="no-force">
178
- <fo:static-content flow-name="xsl-footnote-separator">
179
- <fo:block>
180
- <fo:leader leader-pattern="rule" leader-length="30%"/>
181
- </fo:block>
182
- </fo:static-content>
132
+ <xsl:variable name="updated_xml_step1">
133
+ <xsl:apply-templates mode="update_xml_step1"/>
134
+ </xsl:variable>
183
135
 
184
- <fo:flow flow-name="xsl-region-body" color="white">
136
+ <xsl:for-each select="xalan:nodeset($updated_xml_step1)">
137
+
138
+ <fo:root xml:lang="{$lang}">
139
+ <xsl:variable name="root-style">
140
+ <root-style xsl:use-attribute-sets="root-style"/>
141
+ </xsl:variable>
142
+ <xsl:call-template name="insertRootStyle">
143
+ <xsl:with-param name="root-style" select="$root-style"/>
144
+ </xsl:call-template>
145
+ <fo:layout-master-set>
146
+ <!-- Cover page -->
147
+ <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
148
+ <fo:region-body margin-top="16.5mm" margin-bottom="10mm" margin-left="16.5mm" margin-right="14mm"/>
149
+ <fo:region-before region-name="cover-page-header" extent="16.5mm"/>
150
+ <fo:region-after extent="10mm"/>
151
+ <fo:region-start extent="16.5mm"/>
152
+ <fo:region-end extent="14mm"/>
153
+ </fo:simple-page-master>
154
+
155
+ <!-- Preface pages -->
156
+ <fo:simple-page-master master-name="preface" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
157
+ <fo:region-body margin-top="16.5mm" margin-bottom="22.5mm" margin-left="16.5mm" margin-right="16.5mm"/>
158
+ <fo:region-before region-name="header" extent="16.5mm"/>
159
+ <fo:region-after region-name="footer" extent="22.5mm"/>
160
+ <fo:region-start region-name="left-region" extent="16.5mm"/>
161
+ <fo:region-end region-name="right-region" extent="16.5mm"/>
162
+ </fo:simple-page-master>
163
+
164
+ <!-- Document pages -->
165
+ <fo:simple-page-master master-name="document" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
166
+ <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
167
+ <fo:region-before region-name="header" extent="{$marginTop}mm"/>
168
+ <fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
169
+ <fo:region-start region-name="left-region" extent="16.5mm"/>
170
+ <fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
171
+ </fo:simple-page-master>
172
+
173
+ </fo:layout-master-set>
174
+
175
+ <fo:declarations>
176
+ <xsl:call-template name="addPDFUAmeta"/>
177
+ </fo:declarations>
178
+
179
+ <xsl:call-template name="addBookmarks">
180
+ <xsl:with-param name="contents" select="$contents"/>
181
+ </xsl:call-template>
185
182
 
186
- <!-- background image -->
187
- <fo:block-container absolute-position="fixed" left="0mm" top="0mm" font-size="0">
183
+ <!-- Cover Page -->
184
+ <fo:page-sequence master-reference="cover-page" force-page-count="no-force">
185
+ <fo:static-content flow-name="xsl-footnote-separator">
188
186
  <fo:block>
189
- <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Cover-Background))}" width="{$pageWidth}mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
187
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
190
188
  </fo:block>
191
- </fo:block-container>
189
+ </fo:static-content>
192
190
 
193
- <!-- background color -->
194
- <fo:block-container absolute-position="fixed" left="0" top="0" font-size="0">
195
- <fo:block>
196
- <fo:instream-foreign-object content-height="{$pageHeight}mm" fox:alt-text="Background color">
197
- <svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="{$pageWidth}mm" height="{$pageHeight}mm">
198
- <rect width="{$pageWidth}mm" height="{$pageHeight}mm" style="fill:rgb(33,55,92);stroke-width:0;fill-opacity:0.85"/>
199
- </svg>
200
- </fo:instream-foreign-object>
201
- </fo:block>
202
- </fo:block-container>
191
+ <fo:flow flow-name="xsl-region-body" color="white">
203
192
 
204
- <xsl:call-template name="insertCrossingLines"/>
205
-
206
- <!-- title and logo -->
207
- <fo:block>
208
- <fo:table table-layout="fixed" width="100%">
209
- <fo:table-column column-width="75%"/>
210
- <fo:table-column column-width="25%"/>
211
- <fo:table-body>
212
- <fo:table-row>
213
- <fo:table-cell font-weight="bold">
214
- <fo:block font-size="16pt" color="{$color_design}" margin-bottom="4pt">
215
- <xsl:variable name="ogc_document" select="concat('OGC® DOCUMENT: ', $docnumber)"/>
216
- <xsl:call-template name="addLetterSpacing">
217
- <xsl:with-param name="text" select="$ogc_document"/>
218
- <xsl:with-param name="letter-spacing" select="0.3"/>
219
- </xsl:call-template>
220
- </fo:block>
221
- <xsl:variable name="ogc_external" select="/ogc:ogc-standard/ogc:bibdata/ogc:docidentifier[@type='ogc-external']"/>
222
- <xsl:if test="normalize-space($ogc_external) != ''">
223
- <fo:block font-size="10pt">External identifier of this OGC<fo:inline font-size="58%" baseline-shift="30%">®</fo:inline> document: <fo:inline font-weight="normal"><xsl:value-of select="$ogc_external"/></fo:inline></fo:block>
224
- </xsl:if>
225
- </fo:table-cell>
226
- <fo:table-cell text-align="right">
227
- <fo:block>
228
- <xsl:call-template name="insertLogo"/>
229
- </fo:block>
230
- </fo:table-cell>
231
- </fo:table-row>
232
- </fo:table-body>
233
- </fo:table>
234
- </fo:block>
193
+ <!-- background image -->
194
+ <fo:block-container absolute-position="fixed" left="0mm" top="0mm" font-size="0">
195
+ <fo:block>
196
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Cover-Background))}" width="{$pageWidth}mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
197
+ </fo:block>
198
+ </fo:block-container>
235
199
 
236
- <!-- <fo:block-container absolute-position="fixed" left="16.5mm" top="83mm" height="90mm"> -->
237
- <fo:block-container absolute-position="fixed" left="16.5mm" top="40mm" height="170mm">
238
- <fo:block-container width="155mm" height="99%" display-align="center">
239
- <fo:block font-size="33pt" role="H1">
240
- <xsl:variable name="length_title" select="string-length($doctitle)"/>
241
- <xsl:variable name="fit_font-size">
242
- <xsl:choose>
243
- <xsl:when test="$length_title &gt; 230">20</xsl:when>
244
- <xsl:when test="$length_title &gt; 170">26</xsl:when>
245
- <xsl:when test="$length_title &gt; 155">28</xsl:when>
246
- <xsl:when test="$length_title &gt; 130">30</xsl:when>
247
- </xsl:choose>
248
- </xsl:variable>
249
- <xsl:if test="normalize-space($fit_font-size) != ''">
250
- <xsl:attribute name="font-size"><xsl:value-of select="$fit_font-size"/>pt</xsl:attribute>
251
- </xsl:if>
252
- <xsl:call-template name="addLetterSpacing">
253
- <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new($doctitle))"/>
254
- <xsl:with-param name="letter-spacing" select="1.1"/>
255
- </xsl:call-template>
200
+ <!-- background color -->
201
+ <fo:block-container absolute-position="fixed" left="0" top="0" font-size="0">
202
+ <fo:block>
203
+ <fo:instream-foreign-object content-height="{$pageHeight}mm" fox:alt-text="Background color">
204
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="{$pageWidth}mm" height="{$pageHeight}mm">
205
+ <rect width="{$pageWidth}mm" height="{$pageHeight}mm" style="fill:rgb(33,55,92);stroke-width:0;fill-opacity:0.85"/>
206
+ </svg>
207
+ </fo:instream-foreign-object>
256
208
  </fo:block>
257
- <fo:block-container width="22.5mm" border-bottom="2pt solid {$color_design}" margin-bottom="24pt">
258
- <fo:block margin-top="4pt"> </fo:block>
259
- </fo:block-container>
260
- <fo:block color="{$color_design}">
261
- <fo:block font-size="17pt" margin-bottom="14pt">
262
- <xsl:call-template name="addLetterSpacing">
263
- <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new($doctype))"/>
264
- </xsl:call-template>
265
- <xsl:value-of select="$linebreak"/>
266
- <xsl:variable name="docsubtype" select="normalize-space(/ogc:ogc-standard/ogc:bibdata/ogc:ext/ogc:subdoctype)"/>
267
- <xsl:variable name="docsubtype_str">
209
+ </fo:block-container>
210
+
211
+ <xsl:call-template name="insertCrossingLines"/>
212
+
213
+ <!-- title and logo -->
214
+ <fo:block>
215
+ <fo:table table-layout="fixed" width="100%">
216
+ <fo:table-column column-width="75%"/>
217
+ <fo:table-column column-width="25%"/>
218
+ <fo:table-body>
219
+ <fo:table-row>
220
+ <fo:table-cell font-weight="bold">
221
+ <fo:block font-size="16pt" color="{$color_design}" margin-bottom="4pt">
222
+ <xsl:variable name="ogc_document" select="concat('OGC® DOCUMENT: ', $docnumber)"/>
223
+ <xsl:call-template name="addLetterSpacing">
224
+ <xsl:with-param name="text" select="$ogc_document"/>
225
+ <xsl:with-param name="letter-spacing" select="0.3"/>
226
+ </xsl:call-template>
227
+ </fo:block>
228
+ <xsl:variable name="ogc_external" select="/ogc:ogc-standard/ogc:bibdata/ogc:docidentifier[@type='ogc-external']"/>
229
+ <xsl:if test="normalize-space($ogc_external) != ''">
230
+ <fo:block font-size="10pt">External identifier of this OGC<fo:inline font-size="58%" baseline-shift="30%">®</fo:inline> document: <fo:inline font-weight="normal"><xsl:value-of select="$ogc_external"/></fo:inline></fo:block>
231
+ </xsl:if>
232
+ </fo:table-cell>
233
+ <fo:table-cell text-align="right">
234
+ <fo:block>
235
+ <xsl:call-template name="insertLogo"/>
236
+ </fo:block>
237
+ </fo:table-cell>
238
+ </fo:table-row>
239
+ </fo:table-body>
240
+ </fo:table>
241
+ </fo:block>
242
+
243
+ <!-- <fo:block-container absolute-position="fixed" left="16.5mm" top="83mm" height="90mm"> -->
244
+ <fo:block-container absolute-position="fixed" left="16.5mm" top="40mm" height="170mm">
245
+ <fo:block-container width="155mm" height="99%" display-align="center">
246
+ <fo:block font-size="33pt" role="H1">
247
+ <xsl:variable name="length_title" select="string-length($doctitle)"/>
248
+ <xsl:variable name="fit_font-size">
268
249
  <xsl:choose>
269
- <xsl:when test="$docsubtype = 'implementation'">Implementation</xsl:when>
270
- <xsl:when test="$docsubtype = 'conceptual-model'">Conceptual model</xsl:when>
271
- <xsl:when test="$docsubtype = 'conceptual-model-and-encoding'">Conceptual model &amp; encoding</xsl:when>
272
- <xsl:when test="$docsubtype = 'conceptual-model-and-implementation'">Conceptual model &amp; implementation</xsl:when>
273
- <xsl:when test="$docsubtype = 'encoding'">Encoding</xsl:when>
274
- <xsl:when test="$docsubtype = 'extension'">Extension</xsl:when>
275
- <xsl:when test="$docsubtype = 'profile'">Profile</xsl:when>
276
- <xsl:when test="$docsubtype = 'profile-with-extension'">Profile with extension</xsl:when>
277
- <xsl:when test="$docsubtype = 'general'">General</xsl:when>
250
+ <xsl:when test="$length_title &gt; 230">20</xsl:when>
251
+ <xsl:when test="$length_title &gt; 170">26</xsl:when>
252
+ <xsl:when test="$length_title &gt; 155">28</xsl:when>
253
+ <xsl:when test="$length_title &gt; 130">30</xsl:when>
278
254
  </xsl:choose>
279
255
  </xsl:variable>
256
+ <xsl:if test="normalize-space($fit_font-size) != ''">
257
+ <xsl:attribute name="font-size"><xsl:value-of select="$fit_font-size"/>pt</xsl:attribute>
258
+ </xsl:if>
280
259
  <xsl:call-template name="addLetterSpacing">
281
- <xsl:with-param name="text" select="$docsubtype_str"/>
282
- <xsl:with-param name="letter-spacing" select="0.25"/>
260
+ <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new($doctitle))"/>
261
+ <xsl:with-param name="letter-spacing" select="1.1"/>
283
262
  </xsl:call-template>
284
263
  </fo:block>
285
- <fo:block font-size="12pt" font-weight="bold">
286
- <xsl:variable name="curr_lang" select="/ogc:ogc-standard/ogc:bibdata/ogc:language[@current = 'true']"/>
287
- <xsl:variable name="stage" select="java:toUpperCase(java:java.lang.String.new(/ogc:ogc-standard/ogc:bibdata/ogc:status/ogc:stage[@language = $curr_lang]))"/>
288
- <xsl:call-template name="addLetterSpacing">
289
- <xsl:with-param name="text" select="$stage"/>
290
- </xsl:call-template>
264
+ <fo:block-container width="22.5mm" border-bottom="2pt solid {$color_design}" margin-bottom="24pt">
265
+ <fo:block margin-top="4pt"> </fo:block>
266
+ </fo:block-container>
267
+ <fo:block color="{$color_design}">
268
+ <fo:block font-size="17pt" margin-bottom="14pt">
269
+ <xsl:call-template name="addLetterSpacing">
270
+ <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new($doctype))"/>
271
+ </xsl:call-template>
272
+ <xsl:value-of select="$linebreak"/>
273
+ <xsl:variable name="docsubtype" select="normalize-space(/ogc:ogc-standard/ogc:bibdata/ogc:ext/ogc:subdoctype)"/>
274
+ <xsl:variable name="docsubtype_str">
275
+ <xsl:choose>
276
+ <xsl:when test="$docsubtype = 'implementation'">Implementation</xsl:when>
277
+ <xsl:when test="$docsubtype = 'conceptual-model'">Conceptual model</xsl:when>
278
+ <xsl:when test="$docsubtype = 'conceptual-model-and-encoding'">Conceptual model &amp; encoding</xsl:when>
279
+ <xsl:when test="$docsubtype = 'conceptual-model-and-implementation'">Conceptual model &amp; implementation</xsl:when>
280
+ <xsl:when test="$docsubtype = 'encoding'">Encoding</xsl:when>
281
+ <xsl:when test="$docsubtype = 'extension'">Extension</xsl:when>
282
+ <xsl:when test="$docsubtype = 'profile'">Profile</xsl:when>
283
+ <xsl:when test="$docsubtype = 'profile-with-extension'">Profile with extension</xsl:when>
284
+ <xsl:when test="$docsubtype = 'general'">General</xsl:when>
285
+ </xsl:choose>
286
+ </xsl:variable>
287
+ <xsl:call-template name="addLetterSpacing">
288
+ <xsl:with-param name="text" select="$docsubtype_str"/>
289
+ <xsl:with-param name="letter-spacing" select="0.25"/>
290
+ </xsl:call-template>
291
+ </fo:block>
292
+ <fo:block font-size="12pt" font-weight="bold">
293
+ <xsl:variable name="curr_lang" select="/ogc:ogc-standard/ogc:bibdata/ogc:language[@current = 'true']"/>
294
+ <xsl:variable name="stage" select="java:toUpperCase(java:java.lang.String.new(/ogc:ogc-standard/ogc:bibdata/ogc:status/ogc:stage[@language = $curr_lang]))"/>
295
+ <xsl:call-template name="addLetterSpacing">
296
+ <xsl:with-param name="text" select="$stage"/>
297
+ </xsl:call-template>
298
+ </fo:block>
291
299
  </fo:block>
292
- </fo:block>
300
+ </fo:block-container>
293
301
  </fo:block-container>
294
- </fo:block-container>
295
302
 
296
- <fo:block-container absolute-position="fixed" left="16.5mm" top="204mm" height="60mm" width="180mm" display-align="after" font-size="10pt">
297
- <fo:block line-height="140%">
298
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibdata/ogc:edition[normalize-space(@language) = '']"/>
299
- <fo:block>
300
- <fo:inline font-weight="bold">Submission Date: </fo:inline>
301
- <xsl:choose>
302
- <xsl:when test="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'received']/ogc:on">
303
- <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'received']/ogc:on"/>
304
- </xsl:when>
305
- <xsl:otherwise>XXX</xsl:otherwise>
306
- </xsl:choose>
307
- </fo:block>
308
- <fo:block>
309
- <fo:inline font-weight="bold">Approval Date: </fo:inline>
310
- <xsl:choose>
311
- <xsl:when test="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'issued']/ogc:on">
312
- <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'issued']/ogc:on"/>
313
- </xsl:when>
314
- <xsl:otherwise>XXX</xsl:otherwise>
315
- </xsl:choose>
316
- </fo:block>
317
- <fo:block>
318
- <fo:inline font-weight="bold">Publication Date: </fo:inline>
319
- <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'published']/ogc:on"/>
320
- </fo:block>
303
+ <fo:block-container absolute-position="fixed" left="16.5mm" top="204mm" height="60mm" width="180mm" display-align="after" font-size="10pt">
304
+ <fo:block line-height="140%">
305
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibdata/ogc:edition[normalize-space(@language) = '']"/>
306
+ <fo:block>
307
+ <fo:inline font-weight="bold">Submission Date: </fo:inline>
308
+ <xsl:choose>
309
+ <xsl:when test="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'received']/ogc:on">
310
+ <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'received']/ogc:on"/>
311
+ </xsl:when>
312
+ <xsl:otherwise>XXX</xsl:otherwise>
313
+ </xsl:choose>
314
+ </fo:block>
315
+ <fo:block>
316
+ <fo:inline font-weight="bold">Approval Date: </fo:inline>
317
+ <xsl:choose>
318
+ <xsl:when test="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'issued']/ogc:on">
319
+ <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'issued']/ogc:on"/>
320
+ </xsl:when>
321
+ <xsl:otherwise>XXX</xsl:otherwise>
322
+ </xsl:choose>
323
+ </fo:block>
324
+ <fo:block>
325
+ <fo:inline font-weight="bold">Publication Date: </fo:inline>
326
+ <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:date[@type = 'published']/ogc:on"/>
327
+ </fo:block>
321
328
 
322
- <fo:block margin-bottom="12pt">
323
- <xsl:if test="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author']/ogc:person/ogc:name/ogc:completename">
324
- <fo:block>
325
- <fo:inline font-weight="bold">Author: </fo:inline>
326
- <xsl:for-each select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author']/ogc:person/ogc:name/ogc:completename">
327
- <xsl:value-of select="."/>
328
- <xsl:if test="position() != last()">, </xsl:if>
329
- </xsl:for-each>
330
- </fo:block>
331
- </xsl:if>
332
- <xsl:if test="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='editor']/ogc:person/ogc:name/ogc:completename">
333
- <fo:block>
334
- <fo:inline font-weight="bold">Editor: </fo:inline>
335
- <xsl:for-each select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='editor']/ogc:person/ogc:name/ogc:completename">
336
- <xsl:value-of select="."/>
337
- <xsl:if test="position() != last()">, </xsl:if>
338
- </xsl:for-each>
339
- </fo:block>
340
- </xsl:if>
341
- <xsl:if test="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='contributor']/ogc:person/ogc:name/ogc:completename">
342
- <fo:block>
343
- <fo:inline font-weight="bold">Contributor: </fo:inline>
344
- <xsl:for-each select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='contributor']/ogc:person/ogc:name/ogc:completename">
345
- <xsl:value-of select="."/>
346
- <xsl:if test="position() != last()">, </xsl:if>
347
- </xsl:for-each>
348
- </fo:block>
349
- </xsl:if>
329
+ <fo:block margin-bottom="12pt">
330
+ <xsl:if test="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author']/ogc:person/ogc:name/ogc:completename">
331
+ <fo:block>
332
+ <fo:inline font-weight="bold">Author: </fo:inline>
333
+ <xsl:for-each select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author']/ogc:person/ogc:name/ogc:completename">
334
+ <xsl:value-of select="."/>
335
+ <xsl:if test="position() != last()">, </xsl:if>
336
+ </xsl:for-each>
337
+ </fo:block>
338
+ </xsl:if>
339
+ <xsl:if test="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='editor']/ogc:person/ogc:name/ogc:completename">
340
+ <fo:block>
341
+ <fo:inline font-weight="bold">Editor: </fo:inline>
342
+ <xsl:for-each select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='editor']/ogc:person/ogc:name/ogc:completename">
343
+ <xsl:value-of select="."/>
344
+ <xsl:if test="position() != last()">, </xsl:if>
345
+ </xsl:for-each>
346
+ </fo:block>
347
+ </xsl:if>
348
+ <xsl:if test="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='contributor']/ogc:person/ogc:name/ogc:completename">
349
+ <fo:block>
350
+ <fo:inline font-weight="bold">Contributor: </fo:inline>
351
+ <xsl:for-each select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='contributor']/ogc:person/ogc:name/ogc:completename">
352
+ <xsl:value-of select="."/>
353
+ <xsl:if test="position() != last()">, </xsl:if>
354
+ </xsl:for-each>
355
+ </fo:block>
356
+ </xsl:if>
357
+ </fo:block>
350
358
  </fo:block>
351
- </fo:block>
352
359
 
353
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:boilerplate/ogc:legal-statement"/>
360
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:boilerplate/ogc:legal-statement"/>
354
361
 
355
- </fo:block-container>
362
+ </fo:block-container>
356
363
 
357
- </fo:flow>
358
- </fo:page-sequence>
359
- <!-- End Cover Page -->
360
-
361
- <!-- Copyright, Content, Foreword, etc. pages -->
362
- <fo:page-sequence master-reference="preface" initial-page-number="2" format="i" force-page-count="no-force">
363
- <xsl:call-template name="insertFootnoteSeparator"/>
364
- <xsl:call-template name="insertHeaderFooter"/>
365
- <fo:flow flow-name="xsl-region-body">
366
-
367
- <xsl:if test="$debug = 'true'">
368
- <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
369
- DEBUG
370
- contents=<!-- <xsl:copy-of select="xalan:nodeset($contents)"/> -->
371
- <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
372
- </xsl:if>
364
+ </fo:flow>
365
+ </fo:page-sequence>
366
+ <!-- End Cover Page -->
367
+
368
+ <!-- Copyright, Content, Foreword, etc. pages -->
369
+ <fo:page-sequence master-reference="preface" initial-page-number="2" format="i" force-page-count="no-force">
370
+ <xsl:call-template name="insertFootnoteSeparator"/>
371
+ <xsl:call-template name="insertHeaderFooter"/>
372
+ <fo:flow flow-name="xsl-region-body">
373
+
374
+ <xsl:if test="$debug = 'true'">
375
+ <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
376
+ DEBUG
377
+ contents=<!-- <xsl:copy-of select="xalan:nodeset($contents)"/> -->
378
+ <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
379
+ </xsl:if>
373
380
 
374
- <!-- crossing lines -->
375
- <fo:block-container absolute-position="fixed" width="{$pageWidth}mm" height="{$pageHeight}mm" font-size="0">
376
- <fo:block>
377
- <fo:instream-foreign-object content-height="{$pageHeight}mm" content-width="{$pageWidth}mm" fox:alt-text="Crossing lines">
378
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2159 2794" width="{$pageWidth}mm" height="{$pageHeight}mm">
379
- <line x1="230" y1="0" x2="2159" y2="490" stroke="{$color_design_light}"/>
380
- <line x1="0" y1="395" x2="820" y2="0" stroke="{$color_design_light}"/>
381
- <circle style="fill:{$color_design_light};" cx="614" cy="100" r="15"/>
382
- </svg>
383
- </fo:instream-foreign-object>
384
- </fo:block>
385
- </fo:block-container>
381
+ <!-- crossing lines -->
382
+ <fo:block-container absolute-position="fixed" width="{$pageWidth}mm" height="{$pageHeight}mm" font-size="0">
383
+ <fo:block>
384
+ <fo:instream-foreign-object content-height="{$pageHeight}mm" content-width="{$pageWidth}mm" fox:alt-text="Crossing lines">
385
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2159 2794" width="{$pageWidth}mm" height="{$pageHeight}mm">
386
+ <line x1="230" y1="0" x2="2159" y2="490" stroke="{$color_design_light}"/>
387
+ <line x1="0" y1="395" x2="820" y2="0" stroke="{$color_design_light}"/>
388
+ <circle style="fill:{$color_design_light};" cx="614" cy="100" r="15"/>
389
+ </svg>
390
+ </fo:instream-foreign-object>
391
+ </fo:block>
392
+ </fo:block-container>
386
393
 
387
- <xsl:call-template name="insertLogoPreface"/>
394
+ <xsl:call-template name="insertLogoPreface"/>
388
395
 
389
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:boilerplate/ogc:license-statement"/>
390
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:boilerplate/ogc:feedback-statement"/>
396
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:boilerplate/ogc:license-statement"/>
397
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:boilerplate/ogc:feedback-statement"/>
391
398
 
392
- <!-- Copyright notice -->
393
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:boilerplate/ogc:copyright-statement"/>
399
+ <!-- Copyright notice -->
400
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:boilerplate/ogc:copyright-statement"/>
394
401
 
395
- </fo:flow>
396
- </fo:page-sequence>
402
+ </fo:flow>
403
+ </fo:page-sequence>
397
404
 
398
- <!-- Copyright, Content, Foreword, etc. pages -->
399
- <fo:page-sequence master-reference="document" format="i" force-page-count="no-force">
400
- <xsl:call-template name="insertFootnoteSeparator"/>
401
- <xsl:call-template name="insertHeaderFooter"/>
402
- <fo:flow flow-name="xsl-region-body">
405
+ <!-- Copyright, Content, Foreword, etc. pages -->
406
+ <fo:page-sequence master-reference="document" format="i" force-page-count="no-force">
407
+ <xsl:call-template name="insertFootnoteSeparator"/>
408
+ <xsl:call-template name="insertHeaderFooter"/>
409
+ <fo:flow flow-name="xsl-region-body">
403
410
 
404
- <!-- crossing lines -->
405
- <fo:block-container absolute-position="fixed" width="{$pageWidth}mm" height="{$pageHeight}mm" font-size="0">
406
- <fo:block>
407
- <fo:instream-foreign-object content-height="{$pageHeight}mm" content-width="{$pageWidth}mm" fox:alt-text="Crossing lines">
408
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2159 2794" width="{$pageWidth}mm" height="{$pageHeight}mm">
409
- <line x1="0" y1="545" x2="2084" y2="0" stroke="{$color_design_light}"/>
410
- <line x1="0" y1="1374" x2="355" y2="0" stroke="{$color_design_light}"/>
411
- <circle style="fill:{$color_design_light};" cx="227" cy="487" r="15"/>
412
- </svg>
413
- </fo:instream-foreign-object>
414
- </fo:block>
415
- </fo:block-container>
411
+ <!-- crossing lines -->
412
+ <fo:block-container absolute-position="fixed" width="{$pageWidth}mm" height="{$pageHeight}mm" font-size="0">
413
+ <fo:block>
414
+ <fo:instream-foreign-object content-height="{$pageHeight}mm" content-width="{$pageWidth}mm" fox:alt-text="Crossing lines">
415
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2159 2794" width="{$pageWidth}mm" height="{$pageHeight}mm">
416
+ <line x1="0" y1="545" x2="2084" y2="0" stroke="{$color_design_light}"/>
417
+ <line x1="0" y1="1374" x2="355" y2="0" stroke="{$color_design_light}"/>
418
+ <circle style="fill:{$color_design_light};" cx="227" cy="487" r="15"/>
419
+ </svg>
420
+ </fo:instream-foreign-object>
421
+ </fo:block>
422
+ </fo:block-container>
416
423
 
417
- <fo:block color="{$color_blue}">
424
+ <fo:block color="{$color_blue}">
418
425
 
419
- <xsl:variable name="title-toc">
420
- <xsl:call-template name="getTitle">
421
- <xsl:with-param name="name" select="'title-toc'"/>
422
- </xsl:call-template>
423
- </xsl:variable>
426
+ <xsl:variable name="title-toc">
427
+ <xsl:call-template name="getTitle">
428
+ <xsl:with-param name="name" select="'title-toc'"/>
429
+ </xsl:call-template>
430
+ </xsl:variable>
424
431
 
425
- <fo:block-container margin-left="-18mm">
426
- <fo:block-container margin-left="0mm">
427
- <fo:block margin-bottom="40pt">
428
- <fo:block font-size="33pt" margin-bottom="4pt" role="H1">
429
- <xsl:call-template name="addLetterSpacing">
430
- <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new($title-toc))"/>
431
- <xsl:with-param name="letter-spacing" select="1.1"/>
432
- </xsl:call-template>
432
+ <fo:block-container margin-left="-18mm">
433
+ <fo:block-container margin-left="0mm">
434
+ <fo:block margin-bottom="40pt">
435
+ <fo:block font-size="33pt" margin-bottom="4pt" role="H1">
436
+ <xsl:call-template name="addLetterSpacing">
437
+ <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new($title-toc))"/>
438
+ <xsl:with-param name="letter-spacing" select="1.1"/>
439
+ </xsl:call-template>
440
+ </fo:block>
441
+ <fo:block-container width="22.5mm" border-bottom="2pt solid {$color_design}">
442
+ <fo:block margin-top="4pt"> </fo:block>
443
+ </fo:block-container>
433
444
  </fo:block>
434
- <fo:block-container width="22.5mm" border-bottom="2pt solid {$color_design}">
435
- <fo:block margin-top="4pt"> </fo:block>
436
- </fo:block-container>
437
- </fo:block>
445
+ </fo:block-container>
438
446
  </fo:block-container>
439
- </fo:block-container>
440
-
441
- <fo:block-container line-height="130%">
442
- <fo:block role="TOC">
443
- <xsl:for-each select="$contents//item[@display = 'true' and normalize-space(@id) != '']">
444
447
 
445
- <fo:block role="TOCI">
446
- <xsl:if test="@level = 1">
447
- <xsl:attribute name="margin-top">14pt</xsl:attribute>
448
- </xsl:if>
449
- <xsl:if test="@level = 1 or @parent = 'annex'">
450
- <xsl:attribute name="font-size">12pt</xsl:attribute>
451
- </xsl:if>
452
- <xsl:if test="@level &gt;= 2"> <!-- and not(@parent = 'annex') -->
453
- <xsl:attribute name="font-size">10pt</xsl:attribute>
454
- </xsl:if>
448
+ <fo:block-container line-height="130%">
449
+ <fo:block role="TOC">
450
+ <xsl:for-each select="$contents//item[@display = 'true' and normalize-space(@id) != '']">
455
451
 
456
- <xsl:choose>
457
- <xsl:when test="@level = 1">
458
- <fo:list-block provisional-distance-between-starts="8mm">
459
- <xsl:if test="@type = 'annex'">
460
- <xsl:attribute name="provisional-distance-between-starts">0mm</xsl:attribute>
461
- </xsl:if>
462
- <fo:list-item>
463
- <fo:list-item-label end-indent="label-end()">
464
- <fo:block>
465
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
466
- </fo:block>
467
- </fo:list-item-label>
468
- <fo:list-item-body start-indent="body-start()">
469
- <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
470
- <fo:basic-link internal-destination="{@id}">
471
- <xsl:call-template name="setAltText">
472
- <xsl:with-param name="value" select="text()"/>
473
- </xsl:call-template>
474
- <xsl:variable name="sectionTitle">
475
- <xsl:apply-templates select="title"/>
476
- </xsl:variable>
477
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($sectionTitle))"/>
478
- <xsl:text> </xsl:text>
479
- <fo:inline keep-together.within-line="always">
480
- <fo:leader leader-pattern="dots"/>
481
- <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
482
- </fo:inline>
483
- </fo:basic-link>
484
- </fo:block>
485
- </fo:list-item-body>
486
- </fo:list-item>
487
- </fo:list-block>
488
- </xsl:when>
489
- <xsl:otherwise>
490
- <xsl:variable name="margin-left">
491
- <xsl:choose>
492
- <xsl:when test="number(@level) != 'NaN'"><xsl:value-of select="(@level - 1) * 8"/></xsl:when>
493
- <xsl:otherwise>8</xsl:otherwise>
494
- </xsl:choose>
495
- </xsl:variable>
496
- <fo:block text-align-last="justify" margin-left="{$margin-left}mm">
497
- <fo:basic-link internal-destination="{@id}">
498
- <xsl:call-template name="setAltText">
499
- <xsl:with-param name="value" select="text()"/>
500
- </xsl:call-template>
501
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
502
- <xsl:text> </xsl:text>
503
- <xsl:apply-templates select="title"/>
504
- <xsl:text> </xsl:text>
505
- <fo:inline keep-together.within-line="always">
506
- <fo:leader leader-pattern="dots"/>
507
- <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
508
- </fo:inline>
509
- </fo:basic-link>
510
- </fo:block>
511
- </xsl:otherwise>
512
- </xsl:choose>
452
+ <fo:block role="TOCI">
453
+ <xsl:if test="@level = 1">
454
+ <xsl:attribute name="margin-top">14pt</xsl:attribute>
455
+ </xsl:if>
456
+ <xsl:if test="@level = 1 or @parent = 'annex'">
457
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
458
+ </xsl:if>
459
+ <xsl:if test="@level &gt;= 2"> <!-- and not(@parent = 'annex') -->
460
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
461
+ </xsl:if>
513
462
 
514
- </fo:block>
515
- </xsl:for-each>
516
- </fo:block>
517
- </fo:block-container>
463
+ <xsl:choose>
464
+ <xsl:when test="@level = 1">
465
+ <fo:list-block provisional-distance-between-starts="8mm">
466
+ <xsl:if test="@type = 'annex'">
467
+ <xsl:attribute name="provisional-distance-between-starts">0mm</xsl:attribute>
468
+ </xsl:if>
469
+ <fo:list-item>
470
+ <fo:list-item-label end-indent="label-end()">
471
+ <fo:block>
472
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
473
+ </fo:block>
474
+ </fo:list-item-label>
475
+ <fo:list-item-body start-indent="body-start()">
476
+ <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
477
+ <fo:basic-link internal-destination="{@id}">
478
+ <xsl:call-template name="setAltText">
479
+ <xsl:with-param name="value" select="text()"/>
480
+ </xsl:call-template>
481
+ <xsl:variable name="sectionTitle">
482
+ <xsl:apply-templates select="title"/>
483
+ </xsl:variable>
484
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($sectionTitle))"/>
485
+ <xsl:text> </xsl:text>
486
+ <fo:inline keep-together.within-line="always">
487
+ <fo:leader leader-pattern="dots"/>
488
+ <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
489
+ </fo:inline>
490
+ </fo:basic-link>
491
+ </fo:block>
492
+ </fo:list-item-body>
493
+ </fo:list-item>
494
+ </fo:list-block>
495
+ </xsl:when>
496
+ <xsl:otherwise>
497
+ <xsl:variable name="margin-left">
498
+ <xsl:choose>
499
+ <xsl:when test="number(@level) != 'NaN'"><xsl:value-of select="(@level - 1) * 8"/></xsl:when>
500
+ <xsl:otherwise>8</xsl:otherwise>
501
+ </xsl:choose>
502
+ </xsl:variable>
503
+ <fo:block text-align-last="justify" margin-left="{$margin-left}mm">
504
+ <fo:basic-link internal-destination="{@id}">
505
+ <xsl:call-template name="setAltText">
506
+ <xsl:with-param name="value" select="text()"/>
507
+ </xsl:call-template>
508
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
509
+ <xsl:text> </xsl:text>
510
+ <xsl:apply-templates select="title"/>
511
+ <xsl:text> </xsl:text>
512
+ <fo:inline keep-together.within-line="always">
513
+ <fo:leader leader-pattern="dots"/>
514
+ <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
515
+ </fo:inline>
516
+ </fo:basic-link>
517
+ </fo:block>
518
+ </xsl:otherwise>
519
+ </xsl:choose>
518
520
 
519
- <!-- List of Tables -->
520
- <xsl:if test="$contents//tables/table">
521
- <xsl:call-template name="insertListOf_Title">
522
- <xsl:with-param name="title" select="$title-list-tables"/>
523
- </xsl:call-template>
524
- <fo:block-container line-height="130%">
525
- <xsl:for-each select="$contents//tables/table">
526
- <xsl:call-template name="insertListOf_Item"/>
527
- </xsl:for-each>
521
+ </fo:block>
522
+ </xsl:for-each>
523
+ </fo:block>
528
524
  </fo:block-container>
529
- </xsl:if>
530
525
 
531
- <!-- List of Figures -->
532
- <xsl:if test="$contents//figures/figure">
533
- <xsl:call-template name="insertListOf_Title">
534
- <xsl:with-param name="title" select="$title-list-figures"/>
535
- </xsl:call-template>
536
- <fo:block-container line-height="130%">
537
- <xsl:for-each select="$contents//figures/figure">
538
- <xsl:call-template name="insertListOf_Item"/>
539
- </xsl:for-each>
540
- </fo:block-container>
541
- </xsl:if>
526
+ <!-- List of Tables -->
527
+ <xsl:if test="$contents//tables/table">
528
+ <xsl:call-template name="insertListOf_Title">
529
+ <xsl:with-param name="title" select="$title-list-tables"/>
530
+ </xsl:call-template>
531
+ <fo:block-container line-height="130%">
532
+ <xsl:for-each select="$contents//tables/table">
533
+ <xsl:call-template name="insertListOf_Item"/>
534
+ </xsl:for-each>
535
+ </fo:block-container>
536
+ </xsl:if>
542
537
 
543
- <!-- List of Recommendations -->
544
- <xsl:if test="//ogc:table[.//ogc:p[@class = 'RecommendationTitle']]">
545
- <xsl:call-template name="insertListOf_Title">
546
- <xsl:with-param name="title" select="$title-list-recommendations"/>
547
- </xsl:call-template>
548
- <fo:block-container line-height="130%">
549
- <xsl:for-each select="xalan:nodeset($toc_recommendations)/*[normalize-space(@id) != '']">
550
- <fo:block text-align-last="justify" margin-top="6pt" role="TOCI">
551
- <fo:basic-link internal-destination="{@id}">
552
- <xsl:call-template name="setAltText">
553
- <xsl:with-param name="value" select="@alt-text"/>
554
- </xsl:call-template>
555
- <xsl:copy-of select="title/node()"/>
556
- <xsl:text> </xsl:text>
557
- <fo:inline keep-together.within-line="always">
558
- <fo:leader leader-pattern="dots"/>
559
- <fo:page-number-citation ref-id="{@id}"/>
560
- </fo:inline>
561
- </fo:basic-link>
562
- </fo:block>
563
- </xsl:for-each>
564
- </fo:block-container>
565
- </xsl:if>
538
+ <!-- List of Figures -->
539
+ <xsl:if test="$contents//figures/figure">
540
+ <xsl:call-template name="insertListOf_Title">
541
+ <xsl:with-param name="title" select="$title-list-figures"/>
542
+ </xsl:call-template>
543
+ <fo:block-container line-height="130%">
544
+ <xsl:for-each select="$contents//figures/figure">
545
+ <xsl:call-template name="insertListOf_Item"/>
546
+ </xsl:for-each>
547
+ </fo:block-container>
548
+ </xsl:if>
566
549
 
567
- </fo:block>
550
+ <!-- List of Recommendations -->
551
+ <xsl:if test="//ogc:table[.//ogc:p[@class = 'RecommendationTitle']]">
552
+ <xsl:call-template name="insertListOf_Title">
553
+ <xsl:with-param name="title" select="$title-list-recommendations"/>
554
+ </xsl:call-template>
555
+ <fo:block-container line-height="130%">
556
+ <xsl:for-each select="xalan:nodeset($toc_recommendations)/*[normalize-space(@id) != '']">
557
+ <fo:block text-align-last="justify" margin-top="6pt" role="TOCI">
558
+ <fo:basic-link internal-destination="{@id}">
559
+ <xsl:call-template name="setAltText">
560
+ <xsl:with-param name="value" select="@alt-text"/>
561
+ </xsl:call-template>
562
+ <xsl:copy-of select="title/node()"/>
563
+ <xsl:text> </xsl:text>
564
+ <fo:inline keep-together.within-line="always">
565
+ <fo:leader leader-pattern="dots"/>
566
+ <fo:page-number-citation ref-id="{@id}"/>
567
+ </fo:inline>
568
+ </fo:basic-link>
569
+ </fo:block>
570
+ </xsl:for-each>
571
+ </fo:block-container>
572
+ </xsl:if>
568
573
 
569
- <fo:block break-after="page"/>
574
+ </fo:block>
570
575
 
571
- <fo:block line-height="125%">
572
- <!-- Abstract, Keywords, Preface, Submitting Organizations, Submitters -->
576
+ <fo:block break-after="page"/>
573
577
 
574
- <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
575
- <xsl:sort select="@displayorder" data-type="number"/>
578
+ <fo:block line-height="125%">
579
+ <!-- Abstract, Keywords, Preface, Submitting Organizations, Submitters -->
576
580
 
577
- <xsl:if test="local-name() = 'foreword' or (local-name() = 'clause' and @type = 'security') or (local-name() = 'clause' and @type = 'submitting_orgs') or local-name() = 'introduction'">
578
- <fo:block break-after="page"/>
579
- </xsl:if>
581
+ <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
582
+ <xsl:sort select="@displayorder" data-type="number"/>
580
583
 
581
- <xsl:apply-templates select="."/>
582
- </xsl:for-each>
584
+ <xsl:if test="local-name() = 'foreword' or (local-name() = 'clause' and @type = 'security') or (local-name() = 'clause' and @type = 'submitting_orgs') or local-name() = 'introduction'">
585
+ <fo:block break-after="page"/>
586
+ </xsl:if>
583
587
 
584
- </fo:block>
585
- </fo:flow>
586
- </fo:page-sequence>
588
+ <xsl:apply-templates select="."/>
589
+ </xsl:for-each>
587
590
 
588
- <!-- Document Pages -->
589
- <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
590
- <xsl:sort select="@displayorder" data-type="number"/>
591
- <xsl:choose>
592
- <xsl:when test="local-name() = 'clause' and @type='scope'">
593
- <xsl:apply-templates select="." mode="sections">
594
- <xsl:with-param name="initial-page-number" select="1"/>
595
- </xsl:apply-templates>
596
- </xsl:when>
597
- <xsl:otherwise>
598
- <xsl:apply-templates select="." mode="sections"/>
599
- </xsl:otherwise>
600
- </xsl:choose>
601
- </xsl:for-each>
591
+ </fo:block>
592
+ </fo:flow>
593
+ </fo:page-sequence>
602
594
 
603
- <xsl:for-each select="/*/*[local-name()='annex']">
604
- <xsl:sort select="@displayorder" data-type="number"/>
605
- <xsl:apply-templates select="." mode="sections"/>
606
- </xsl:for-each>
595
+ <!-- Document Pages -->
596
+ <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
597
+ <xsl:sort select="@displayorder" data-type="number"/>
598
+ <xsl:choose>
599
+ <xsl:when test="local-name() = 'clause' and @type='scope'">
600
+ <xsl:apply-templates select="." mode="sections">
601
+ <xsl:with-param name="initial-page-number" select="1"/>
602
+ </xsl:apply-templates>
603
+ </xsl:when>
604
+ <xsl:otherwise>
605
+ <xsl:apply-templates select="." mode="sections"/>
606
+ </xsl:otherwise>
607
+ </xsl:choose>
608
+ </xsl:for-each>
607
609
 
608
- <!-- Bibliography -->
609
- <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
610
- <xsl:sort select="@displayorder" data-type="number"/>
611
- <xsl:apply-templates select="." mode="sections"/>
612
- </xsl:for-each>
610
+ <xsl:for-each select="/*/*[local-name()='annex']">
611
+ <xsl:sort select="@displayorder" data-type="number"/>
612
+ <xsl:apply-templates select="." mode="sections"/>
613
+ </xsl:for-each>
614
+
615
+ <!-- Bibliography -->
616
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
617
+ <xsl:sort select="@displayorder" data-type="number"/>
618
+ <xsl:apply-templates select="." mode="sections"/>
619
+ </xsl:for-each>
620
+
621
+ <xsl:apply-templates select="//ogc:indexsect" mode="sections"/>
613
622
 
614
- <xsl:apply-templates select="//ogc:indexsect" mode="sections"/>
623
+ <!-- End Document Pages -->
615
624
 
616
- <!-- End Document Pages -->
625
+ </fo:root>
617
626
 
618
- </fo:root>
627
+ </xsl:for-each>
619
628
  </xsl:template>
620
629
 
621
630
  <xsl:template name="insertListOf_Title">
@@ -1506,14 +1515,14 @@
1506
1515
  BUT DON'T put any another conditions together with $namespace = '...' (such conditions will be ignored). For another conditions, please use nested xsl:if or xsl:choose -->
1507
1516
 
1508
1517
  <!--
1509
- <misc-container>
1518
+ <metanorma-extension>
1510
1519
  <presentation-metadata>
1511
1520
  <papersize>letter</papersize>
1512
1521
  </presentation-metadata>
1513
- </misc-container>
1522
+ </metanorma-extension>
1514
1523
  -->
1515
1524
 
1516
- <xsl:variable name="papersize" select="java:toLowerCase(java:java.lang.String.new(normalize-space(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata']/*[local-name() = 'papersize'])))"/>
1525
+ <xsl:variable name="papersize" select="java:toLowerCase(java:java.lang.String.new(normalize-space(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata']/*[local-name() = 'papersize'])))"/>
1517
1526
  <xsl:variable name="papersize_width_">
1518
1527
  <xsl:choose>
1519
1528
  <xsl:when test="$papersize = 'letter'">215.9</xsl:when>
@@ -1630,7 +1639,7 @@
1630
1639
  <xsl:variable name="titles" select="xalan:nodeset($titles_)"/>
1631
1640
 
1632
1641
  <xsl:variable name="title-list-tables">
1633
- <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
1642
+ <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
1634
1643
  <xsl:value-of select="$toc_table_title"/>
1635
1644
  <xsl:if test="normalize-space($toc_table_title) = ''">
1636
1645
  <xsl:call-template name="getTitle">
@@ -1640,7 +1649,7 @@
1640
1649
  </xsl:variable>
1641
1650
 
1642
1651
  <xsl:variable name="title-list-figures">
1643
- <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
1652
+ <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
1644
1653
  <xsl:value-of select="$toc_figure_title"/>
1645
1654
  <xsl:if test="normalize-space($toc_figure_title) = ''">
1646
1655
  <xsl:call-template name="getTitle">
@@ -1650,7 +1659,7 @@
1650
1659
  </xsl:variable>
1651
1660
 
1652
1661
  <xsl:variable name="title-list-recommendations">
1653
- <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
1662
+ <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
1654
1663
  <xsl:value-of select="$toc_requirement_title"/>
1655
1664
  <xsl:if test="normalize-space($toc_requirement_title) = ''">
1656
1665
  <xsl:call-template name="getTitle">
@@ -1723,7 +1732,7 @@
1723
1732
  <xsl:variable name="root-style_" select="xalan:nodeset($root-style)"/>
1724
1733
 
1725
1734
  <xsl:variable name="additional_fonts_">
1726
- <xsl:for-each select="//*[contains(local-name(), '-standard')][1]/*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value'] | //*[contains(local-name(), '-standard')][1]/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value']">
1735
+ <xsl:for-each select="//*[contains(local-name(), '-standard')][1]/*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value'] | //*[contains(local-name(), '-standard')][1]/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'fonts']/*[local-name() = 'value']">
1727
1736
  <xsl:value-of select="."/><xsl:if test="position() != last()">, </xsl:if>
1728
1737
  </xsl:for-each>
1729
1738
  </xsl:variable>
@@ -2244,7 +2253,7 @@
2244
2253
  <xsl:attribute-set name="note-name-style">
2245
2254
 
2246
2255
  <xsl:attribute name="font-weight">bold</xsl:attribute>
2247
- <xsl:attribute name="padding-right">1mm</xsl:attribute>
2256
+ <!-- <xsl:attribute name="padding-right">1mm</xsl:attribute> -->
2248
2257
 
2249
2258
  </xsl:attribute-set>
2250
2259
 
@@ -2886,10 +2895,10 @@
2886
2895
 
2887
2896
  <xsl:template name="processTablesFigures_Contents">
2888
2897
  <xsl:param name="always"/>
2889
- <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
2898
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
2890
2899
  <xsl:call-template name="processTables_Contents"/>
2891
2900
  </xsl:if>
2892
- <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
2901
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
2893
2902
  <xsl:call-template name="processFigures_Contents"/>
2894
2903
  </xsl:if>
2895
2904
  </xsl:template>
@@ -3240,6 +3249,8 @@
3240
3249
 
3241
3250
  <xsl:attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></xsl:attribute>
3242
3251
 
3252
+ <xsl:call-template name="setBordersTableArray"/>
3253
+
3243
3254
  </xsl:element>
3244
3255
  </xsl:variable>
3245
3256
 
@@ -3381,6 +3392,10 @@
3381
3392
 
3382
3393
  </xsl:template>
3383
3394
 
3395
+ <xsl:template name="setBordersTableArray">
3396
+
3397
+ </xsl:template>
3398
+
3384
3399
  <xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
3385
3400
  <xsl:param name="continued"/>
3386
3401
  <xsl:if test="normalize-space() != ''">
@@ -3855,6 +3870,8 @@
3855
3870
  <fo:table-row>
3856
3871
  <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
3857
3872
 
3873
+ <xsl:call-template name="setBordersTableArray"/>
3874
+
3858
3875
  <!-- fn will be processed inside 'note' processing -->
3859
3876
 
3860
3877
  <!-- for BSI (not PAS) display Notes before footnotes -->
@@ -3976,6 +3993,8 @@
3976
3993
  <xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
3977
3994
  <fo:table-row xsl:use-attribute-sets="table-header-row-style">
3978
3995
 
3996
+ <xsl:call-template name="setBordersTableArray"/>
3997
+
3979
3998
  <xsl:call-template name="setTableRowAttributes"/>
3980
3999
 
3981
4000
  <xsl:apply-templates/>
@@ -3999,6 +4018,8 @@
3999
4018
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
4000
4019
  </xsl:if>
4001
4020
 
4021
+ <xsl:call-template name="setBordersTableArray"/>
4022
+
4002
4023
  <xsl:variable name="number"><xsl:number/></xsl:variable>
4003
4024
  <xsl:attribute name="background-color">
4004
4025
  <xsl:choose>
@@ -4026,6 +4047,8 @@
4026
4047
  <xsl:with-param name="default">center</xsl:with-param>
4027
4048
  </xsl:call-template>
4028
4049
 
4050
+ <xsl:call-template name="setBordersTableArray"/>
4051
+
4029
4052
  <xsl:if test="starts-with(ancestor::*[local-name() = 'table'][1]/@type, 'recommend') and normalize-space(@align) = ''">
4030
4053
  <xsl:call-template name="setTextAlignment">
4031
4054
  <xsl:with-param name="default">left</xsl:with-param>
@@ -4084,6 +4107,8 @@
4084
4107
 
4085
4108
  <!-- bsi -->
4086
4109
 
4110
+ <xsl:call-template name="setBordersTableArray"/>
4111
+
4087
4112
  <xsl:if test=".//*[local-name() = 'table']"> <!-- if there is nested table -->
4088
4113
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
4089
4114
  </xsl:if>
@@ -4138,7 +4163,7 @@
4138
4163
  </fn>
4139
4164
  -->
4140
4165
  <!-- footnotes in text (title, bibliography, main body, table's, figure's names), not for tables, figures -->
4141
- <xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" priority="2" name="fn">
4166
+ <xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure')] and not(ancestor::*[local-name() = 'name']))]" priority="2" name="fn">
4142
4167
 
4143
4168
  <!-- list of footnotes to calculate actual footnotes number -->
4144
4169
  <xsl:variable name="p_fn_">
@@ -4195,8 +4220,7 @@
4195
4220
  </fo:basic-link>
4196
4221
  </fo:inline>
4197
4222
  </xsl:variable>
4198
- <!-- DEBUG: p_fn=<xsl:copy-of select="$p_fn"/>
4199
- gen_id=<xsl:value-of select="$gen_id"/> -->
4223
+
4200
4224
  <xsl:choose>
4201
4225
  <xsl:when test="normalize-space(@skip_footnote_body) = 'true'">
4202
4226
  <xsl:copy-of select="$footnote_inline"/>
@@ -4251,7 +4275,7 @@
4251
4275
  <!-- commented:
4252
4276
  .//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] |
4253
4277
  because 'fn' there is in biblio-tag -->
4254
- <xsl:for-each select=".//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
4278
+ <xsl:for-each select=".//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure')] and not(ancestor::*[local-name() = 'name']))][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
4255
4279
  <!-- copy unique fn -->
4256
4280
  <fn gen_id="{generate-id(.)}">
4257
4281
  <xsl:copy-of select="@*"/>
@@ -6641,8 +6665,6 @@
6641
6665
  </xsl:when>
6642
6666
  <xsl:otherwise>
6643
6667
 
6644
- <xsl:text>:</xsl:text>
6645
-
6646
6668
  </xsl:otherwise>
6647
6669
  </xsl:choose>
6648
6670
  </xsl:variable>
@@ -6813,7 +6835,9 @@
6813
6835
 
6814
6836
  <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $width_effective, $height_effective)"/>
6815
6837
  <xsl:if test="number($scale) &lt; 100">
6816
- <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
6838
+
6839
+ <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
6840
+
6817
6841
  </xsl:if>
6818
6842
 
6819
6843
  </xsl:if>
@@ -7757,7 +7781,7 @@
7757
7781
  <!-- sourcecode -->
7758
7782
  <!-- =============== -->
7759
7783
 
7760
- <xsl:variable name="source-highlighter-css_" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'source-highlighter-css']"/>
7784
+ <xsl:variable name="source-highlighter-css_" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'source-highlighter-css']"/>
7761
7785
  <xsl:variable name="sourcecode_css_" select="java:org.metanorma.fop.Util.parseCSS($source-highlighter-css_)"/>
7762
7786
  <xsl:variable name="sourcecode_css" select="xalan:nodeset($sourcecode_css_)"/>
7763
7787
 
@@ -7778,7 +7802,7 @@
7778
7802
  </xsl:if> -->
7779
7803
 
7780
7804
  <xsl:choose>
7781
- <xsl:when test="ancestor::*[local-name() = 'table'][not(@type = 'sourcecode')]">8.5</xsl:when>
7805
+ <xsl:when test="ancestor::*[local-name() = 'table'][not(parent::*[local-name() = 'sourcecode'][@linenums = 'true'])]">8.5</xsl:when>
7782
7806
  <xsl:otherwise>9.5</xsl:otherwise>
7783
7807
  </xsl:choose>
7784
7808
 
@@ -7857,6 +7881,12 @@
7857
7881
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
7858
7882
  </xsl:if>
7859
7883
 
7884
+ <!-- remove margin between rows in the table with sourcecode line numbers -->
7885
+ <xsl:if test="ancestor::*[local-name() = 'sourcecode'][@linenums = 'true'] and ancestor::*[local-name() = 'tr'][1]/following-sibling::*[local-name() = 'tr']">
7886
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
7887
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
7888
+ </xsl:if>
7889
+
7860
7890
  <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
7861
7891
  </fo:block>
7862
7892
 
@@ -7909,7 +7939,7 @@
7909
7939
  </xsl:template>
7910
7940
 
7911
7941
  <!-- outer table with line numbers for sourcecode -->
7912
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']" priority="2">
7942
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode'] | -->
7913
7943
  <fo:block>
7914
7944
  <fo:table width="100%" table-layout="fixed">
7915
7945
  <xsl:copy-of select="@id"/>
@@ -7921,16 +7951,16 @@
7921
7951
  </fo:table>
7922
7952
  </fo:block>
7923
7953
  </xsl:template>
7924
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']/*[local-name() = 'tbody']" priority="2">
7954
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']/*[local-name() = 'tbody']" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode']/*[local-name() = 'tbody'] | -->
7925
7955
  <xsl:apply-templates/>
7926
7956
  </xsl:template>
7927
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr']" priority="2">
7957
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']//*[local-name()='tr']" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr'] | -->
7928
7958
  <fo:table-row>
7929
7959
  <xsl:apply-templates/>
7930
7960
  </fo:table-row>
7931
7961
  </xsl:template>
7932
7962
  <!-- first td with line numbers -->
7933
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr']/*[local-name()='td'][not(preceding-sibling::*)]" priority="2">
7963
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']//*[local-name()='tr']/*[local-name()='td'][not(preceding-sibling::*)]" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode'] -->
7934
7964
  <fo:table-cell>
7935
7965
  <fo:block>
7936
7966
 
@@ -7950,8 +7980,9 @@
7950
7980
  </fo:block>
7951
7981
  </fo:table-cell>
7952
7982
  </xsl:template>
7983
+
7953
7984
  <!-- second td with sourcecode -->
7954
- <xsl:template match="*[local-name()='table'][@type = 'sourcecode']//*[local-name()='tr']/*[local-name()='td'][preceding-sibling::*]" priority="2">
7985
+ <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']//*[local-name()='tr']/*[local-name()='td'][preceding-sibling::*]" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode'] -->
7955
7986
  <fo:table-cell>
7956
7987
  <fo:block>
7957
7988
  <xsl:apply-templates/>
@@ -8189,7 +8220,25 @@
8189
8220
  <xsl:template match="*[local-name()='pre']" name="pre">
8190
8221
  <fo:block xsl:use-attribute-sets="pre-style">
8191
8222
  <xsl:copy-of select="@id"/>
8192
- <xsl:apply-templates/>
8223
+ <xsl:choose>
8224
+
8225
+ <xsl:when test="ancestor::*[local-name() = 'sourcecode'][@linenums = 'true'] and ancestor::*[local-name()='td'][1][not(preceding-sibling::*)]"> <!-- pre in the first td in the table with @linenums = 'true' -->
8226
+ <xsl:if test="ancestor::*[local-name() = 'tr'][1]/following-sibling::*[local-name() = 'tr']"> <!-- is current tr isn't last -->
8227
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
8228
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
8229
+ </xsl:if>
8230
+ <fo:instream-foreign-object fox:alt-text="{.}" content-width="95%">
8231
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
8232
+ <mtext><xsl:value-of select="."/></mtext>
8233
+ </math>
8234
+ </fo:instream-foreign-object>
8235
+ </xsl:when>
8236
+
8237
+ <xsl:otherwise>
8238
+ <xsl:apply-templates/>
8239
+ </xsl:otherwise>
8240
+
8241
+ </xsl:choose>
8193
8242
  </fo:block>
8194
8243
  </xsl:template>
8195
8244
  <!-- =============== -->
@@ -8893,6 +8942,7 @@
8893
8942
  <xsl:variable name="padding">
8894
8943
 
8895
8944
  <xsl:choose>
8945
+ <xsl:when test="ancestor::*[local-name() = 'note'] and ancestor::*[local-name() = 'name']">1</xsl:when>
8896
8946
  <xsl:when test="$depth = 2">2</xsl:when>
8897
8947
  <xsl:otherwise>1</xsl:otherwise>
8898
8948
  </xsl:choose>
@@ -9829,8 +9879,8 @@
9829
9879
 
9830
9880
  <xsl:variable name="toc_level">
9831
9881
  <!-- https://www.metanorma.org/author/ref/document-attributes/ -->
9832
- <xsl:variable name="htmltoclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'HTML TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- :htmltoclevels Number of table of contents levels to render in HTML/PDF output; used to override :toclevels:-->
9833
- <xsl:variable name="toclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- Number of table of contents levels to render -->
9882
+ <xsl:variable name="htmltoclevels" select="normalize-space(//*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'HTML TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- :htmltoclevels Number of table of contents levels to render in HTML/PDF output; used to override :toclevels:-->
9883
+ <xsl:variable name="toclevels" select="normalize-space(//*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- Number of table of contents levels to render -->
9834
9884
  <xsl:choose>
9835
9885
  <xsl:when test="$htmltoclevels != ''"><xsl:value-of select="number($htmltoclevels)"/></xsl:when> <!-- if there is value in xml -->
9836
9886
  <xsl:when test="$toclevels != ''"><xsl:value-of select="number($toclevels)"/></xsl:when> <!-- if there is value in xml -->
@@ -10822,6 +10872,7 @@
10822
10872
  <xsl:choose>
10823
10873
  <xsl:when test="$lang = 'ar' and $align = 'left'">start</xsl:when>
10824
10874
  <xsl:when test="$lang = 'ar' and $align = 'right'">end</xsl:when>
10875
+ <xsl:when test="$align = 'justified'">justify</xsl:when>
10825
10876
  <xsl:when test="$align != '' and not($align = 'indent')"><xsl:value-of select="$align"/></xsl:when>
10826
10877
  <xsl:when test="ancestor::*[local-name() = 'td']/@align"><xsl:value-of select="ancestor::*[local-name() = 'td']/@align"/></xsl:when>
10827
10878
  <xsl:when test="ancestor::*[local-name() = 'th']/@align"><xsl:value-of select="ancestor::*[local-name() = 'th']/@align"/></xsl:when>