metanorma-ogc 2.6.5 → 2.6.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 17f8abe4584052c8638ff63af0cf4f601329a1833105aa4847d70c8746c285ca
4
- data.tar.gz: e9287cf4b36ddf56eb74b927e677ec483f96a934bd891014d1bdada95eb07823
3
+ metadata.gz: 711f1bee1292fc9c5d009c8a74752c3e791b75e222b13c104a34b7520d85d339
4
+ data.tar.gz: 8c29744eeee97ee284acc02f838baeb83f4a22b0ea86e5b5e1a5ae1dccdcbfd0
5
5
  SHA512:
6
- metadata.gz: a8e30d2b9bdc650ae6c3c953221ea480761bbc06eb8bc3a09ff8b5b65799896893ca8a4d5d928f240b877990a32f61c4d3cea183bbad3928244eea05d682bc0e
7
- data.tar.gz: 3966ff5a7adbb26710a33606cf97cc622db0d2154a50e07453c5d5b05c2228022408435a63660dd51c54157ba4a8a6e3fee43267c2489217a781f3e2a042f053
6
+ metadata.gz: bc0c33bdbbcf1548b50e40a6e2378be7e00a0de0d82eedf34352c1e25f84ce42bdc7cee19d675d35054213abfb5fe77046546d5094b72794d8349a3ab8b57ca1
7
+ data.tar.gz: 19f16e0e04b5964a188f38db9c78d0f5b31a0ec149d4bcef19b2cc5b7912371713673dd24584c716926e65f1ca10e669bcf6e9e601e1535868189fe88e44b79b
@@ -36,8 +36,8 @@ module IsoDoc
36
36
  h2 = term.at("./preceding-sibling::*[@class = 'TermNum'][1]")
37
37
  term["class"] = h2["class"]
38
38
  term["id"] = h2["id"]
39
- term.children.first.previous = " "
40
- term.children.first.previous = h2.remove.children
39
+ term.add_first_child " "
40
+ term.add_first_child h2.remove.children
41
41
  end
42
42
 
43
43
  def term_cleanup_merge_admitted(term)
@@ -143,7 +143,6 @@ module IsoDoc
143
143
  def figure_parse1(node, out)
144
144
  out.div **figure_attrs(node) do |div|
145
145
  node.children.each do |n|
146
- figure_key(out) if n.name == "dl"
147
146
  parse(n, div) unless n.name == "name"
148
147
  end
149
148
  end
@@ -170,7 +169,7 @@ module IsoDoc
170
169
  encoding: "UTF-8")
171
170
  "#{a[0]}#{scripts}#{a[1]}"
172
171
  end
173
-
172
+
174
173
  # to pass on to imported _coverpage.scss
175
174
  def scss_fontheader(is_html_css)
176
175
  super + <<~SCSS
@@ -32,15 +32,6 @@ module IsoDoc
32
32
  def submittingorgs_path
33
33
  "//bibdata/contributor[role/@type = 'author']/organization/name"
34
34
  end
35
-
36
- def ogc_draft_ref?(ref)
37
- return unless ref.at(ns("./docidentifier[@type = 'OGC']"))
38
-
39
- status = ref.at(ns("./status/stage"))&.text or return
40
- return if %w(approved published deprecated retired).include? status
41
-
42
- true
43
- end
44
35
  end
45
36
  end
46
37
  end
@@ -1241,6 +1241,7 @@
1241
1241
  <xsl:attribute name="line-height">125%</xsl:attribute>
1242
1242
  </xsl:if>
1243
1243
  <xsl:call-template name="setId"/>
1244
+ <xsl:call-template name="addReviewHelper"/>
1244
1245
  <xsl:apply-templates/>
1245
1246
  </fo:block>
1246
1247
  </xsl:template>
@@ -5548,6 +5549,11 @@
5548
5549
 
5549
5550
  <xsl:value-of select="@reference"/>
5550
5551
 
5552
+ <!-- commented https://github.com/metanorma/isodoc/issues/614 -->
5553
+ <!-- <xsl:if test="$namespace = 'itu'">
5554
+ <xsl:text>)</xsl:text>
5555
+ </xsl:if> -->
5556
+
5551
5557
  </fo:inline>
5552
5558
  <fo:inline xsl:use-attribute-sets="table-fn-body-style">
5553
5559
  <xsl:copy-of select="./node()"/>
@@ -5557,7 +5563,7 @@
5557
5563
 
5558
5564
  </xsl:if>
5559
5565
  </xsl:for-each>
5560
- </xsl:template>
5566
+ </xsl:template> <!-- table_fn_display -->
5561
5567
 
5562
5568
  <xsl:template name="create_fn">
5563
5569
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -5591,8 +5597,10 @@
5591
5597
  <!-- EMD table's footnotes rendering -->
5592
5598
  <!-- ============================ -->
5593
5599
 
5600
+ <!-- ============================ -->
5594
5601
  <!-- figure's footnotes rendering -->
5595
- <xsl:template name="fn_display_figure">
5602
+ <!-- ============================ -->
5603
+ <xsl:template name="fn_display_figure"> <!-- figure_fn_display -->
5596
5604
 
5597
5605
  <!-- current figure id -->
5598
5606
  <xsl:variable name="figure_id_">
@@ -5705,9 +5713,28 @@
5705
5713
 
5706
5714
  </fo:block>
5707
5715
  </xsl:if>
5708
-
5709
5716
  </xsl:template> <!-- fn_display_figure -->
5710
5717
 
5718
+ <!-- added for https://github.com/metanorma/isodoc/issues/607 -->
5719
+ <!-- figure's footnote label -->
5720
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'dl'][@key = 'true']/*[local-name() = 'dt']/ *[local-name() = 'p'][count(node()[normalize-space() != '']) = 1]/*[local-name() = 'sup']" priority="3">
5721
+ <xsl:variable name="key_iso">
5722
+
5723
+ </xsl:variable>
5724
+ <xsl:if test="normalize-space($key_iso) = 'true'">
5725
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
5726
+
5727
+ </xsl:if>
5728
+ <fo:inline xsl:use-attribute-sets="figure-fn-number-style"> <!-- id="{@id}" -->
5729
+ <!-- <xsl:value-of select="@reference"/> -->
5730
+ <xsl:apply-templates/>
5731
+ </fo:inline>
5732
+ </xsl:template>
5733
+
5734
+ <!-- ============================ -->
5735
+ <!-- END: figure's footnotes rendering -->
5736
+ <!-- ============================ -->
5737
+
5711
5738
  <!-- fn reference in the text rendering (for instance, 'some text 1) some text' ) -->
5712
5739
  <xsl:template match="*[local-name()='fn']">
5713
5740
  <fo:inline xsl:use-attribute-sets="fn-reference-style">
@@ -5728,6 +5755,10 @@
5728
5755
 
5729
5756
  <xsl:value-of select="@reference"/>
5730
5757
 
5758
+ <!-- commented, https://github.com/metanorma/isodoc/issues/614 -->
5759
+ <!-- <xsl:if test="$namespace = 'jis'">
5760
+ <fo:inline font-weight="normal">)</fo:inline>
5761
+ </xsl:if> -->
5731
5762
  </fo:basic-link>
5732
5763
  </fo:inline>
5733
5764
  </xsl:template>
@@ -5854,17 +5885,22 @@
5854
5885
  </fo:block>
5855
5886
  </xsl:when> <!-- END: a few components -->
5856
5887
  <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')"> <!-- definition list in a figure -->
5857
- <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
5888
+ <!-- Presentation XML contains 'Key' caption, https://github.com/metanorma/isodoc/issues/607 -->
5889
+ <xsl:if test="not(preceding-sibling::*[1][local-name() = 'p' and @keep-with-next])"> <!-- for old Presentation XML -->
5858
5890
 
5859
- <xsl:call-template name="refine_figure_key_style"/>
5891
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
5860
5892
 
5861
- <xsl:variable name="title-key">
5862
- <xsl:call-template name="getLocalizedString">
5863
- <xsl:with-param name="key">key</xsl:with-param>
5864
- </xsl:call-template>
5865
- </xsl:variable>
5866
- <xsl:value-of select="$title-key"/>
5867
- </fo:block>
5893
+ <xsl:call-template name="refine_figure_key_style"/>
5894
+
5895
+ <xsl:variable name="title-key">
5896
+ <xsl:call-template name="getLocalizedString">
5897
+ <xsl:with-param name="key">key</xsl:with-param>
5898
+ </xsl:call-template>
5899
+ </xsl:variable>
5900
+ <xsl:value-of select="$title-key"/>
5901
+ </fo:block>
5902
+
5903
+ </xsl:if>
5868
5904
  </xsl:when> <!-- END: definition list in a figure -->
5869
5905
  </xsl:choose>
5870
5906
 
@@ -6050,6 +6086,14 @@
6050
6086
 
6051
6087
  </xsl:template> <!-- END: dl -->
6052
6088
 
6089
+ <!-- caption for figure key and another caption, https://github.com/metanorma/isodoc/issues/607 -->
6090
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'p'][@keep-with-next = 'true' and *[local-name() = 'strong']]" priority="3">
6091
+ <fo:block text-align="left" margin-bottom="12pt" keep-with-next="always">
6092
+ <xsl:call-template name="refine_figure_key_style"/>
6093
+ <xsl:apply-templates/>
6094
+ </fo:block>
6095
+ </xsl:template>
6096
+
6053
6097
  <xsl:template name="refine_dl_formula_where_style">
6054
6098
 
6055
6099
  </xsl:template> <!-- refine_dl_formula_where_style -->
@@ -8092,6 +8136,39 @@
8092
8136
  </xsl:copy>
8093
8137
  </xsl:template>
8094
8138
 
8139
+ <xsl:template match="@*|node()" mode="mathml_linebreak">
8140
+ <xsl:copy>
8141
+ <xsl:apply-templates select="@*|node()" mode="mathml_linebreak"/>
8142
+ </xsl:copy>
8143
+ </xsl:template>
8144
+
8145
+ <!-- split math into two math -->
8146
+ <xsl:template match="mathml:mo[@linebreak] | mathml:mspace[@linebreak]" mode="mathml_linebreak">
8147
+ <xsl:variable name="math_elements_tree_">
8148
+ <xsl:for-each select="ancestor::*[ancestor-or-self::mathml:math]">
8149
+ <element pos="{position()}">
8150
+ <xsl:copy-of select="@*[local-name() != 'id']"/>
8151
+ <xsl:value-of select="name()"/>
8152
+ </element>
8153
+ </xsl:for-each>
8154
+ </xsl:variable>
8155
+
8156
+ <xsl:variable name="math_elements_tree" select="xalan:nodeset($math_elements_tree_)"/>
8157
+
8158
+ <xsl:call-template name="insertClosingElements">
8159
+ <xsl:with-param name="tree" select="$math_elements_tree"/>
8160
+ </xsl:call-template>
8161
+
8162
+ <xsl:element name="br" namespace="{$namespace_full}"/>
8163
+
8164
+ <xsl:call-template name="insertOpeningElements">
8165
+ <xsl:with-param name="tree" select="$math_elements_tree"/>
8166
+ <xsl:with-param name="xmlns">http://www.w3.org/1998/Math/MathML</xsl:with-param>
8167
+ <xsl:with-param name="add_continue">false</xsl:with-param>
8168
+ </xsl:call-template>
8169
+
8170
+ </xsl:template>
8171
+
8095
8172
  <!-- Examples:
8096
8173
  <stem type="AsciiMath">x = 1</stem>
8097
8174
  <stem type="AsciiMath"><asciimath>x = 1</asciimath></stem>
@@ -8347,9 +8424,11 @@
8347
8424
  </xsl:template>
8348
8425
 
8349
8426
  <xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"> <!-- show in 'stem' template -->
8427
+ <!-- https://github.com/metanorma/isodoc/issues/607
8350
8428
  <xsl:if test="normalize-space() != ''">
8351
- <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
8352
- </xsl:if>
8429
+ <xsl:text>(</xsl:text><xsl:apply-templates /><xsl:text>)</xsl:text>
8430
+ </xsl:if> -->
8431
+ <xsl:apply-templates/>
8353
8432
  </xsl:template>
8354
8433
 
8355
8434
  <!-- stem inside formula with name (with formula's number) -->
@@ -8505,6 +8584,17 @@
8505
8584
  </xsl:when>
8506
8585
  <xsl:otherwise>
8507
8586
 
8587
+ <!-- https://github.com/metanorma/isodoc/issues/607 -->
8588
+ <!-- <xsl:if test="$namespace = 'ieee'">
8589
+ <xsl:text>—</xsl:text> em dash &#x2014;
8590
+ </xsl:if> -->
8591
+ <!-- <xsl:if test="$namespace = 'iho' or $namespace = 'gb' or $namespace = 'm3d' or $namespace = 'unece-rec' or $namespace = 'unece' or $namespace = 'rsd'">
8592
+ <xsl:text>:</xsl:text>
8593
+ </xsl:if> -->
8594
+
8595
+ <!-- <xsl:if test="$namespace = 'itu' or $namespace = 'nist-cswp' or $namespace = 'nist-sp'">
8596
+ <xsl:text> – </xsl:text> en dash &#x2013;
8597
+ </xsl:if> -->
8508
8598
  </xsl:otherwise>
8509
8599
  </xsl:choose>
8510
8600
  </xsl:variable>
@@ -8523,8 +8613,16 @@
8523
8613
  </xsl:when>
8524
8614
  <xsl:otherwise>
8525
8615
 
8616
+ <!-- https://github.com/metanorma/isodoc/issues/607 -->
8617
+ <!-- <xsl:if test="$namespace = 'ieee'">
8618
+ <xsl:text>—</xsl:text> em dash &#x2014;
8619
+ </xsl:if> -->
8620
+ <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'iso' or $namespace = 'iec' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' or $namespace = 'rsd' or $namespace = 'jcgm'">
8526
8621
  <xsl:text>:</xsl:text>
8527
-
8622
+ </xsl:if> -->
8623
+ <!-- <xsl:if test="$namespace = 'itu' or $namespace = 'nist-cswp' or $namespace = 'nist-sp' or $namespace = 'unece-rec' or $namespace = 'unece'">
8624
+ <xsl:text> – </xsl:text> en dash &#x2013;
8625
+ </xsl:if> -->
8528
8626
  </xsl:otherwise>
8529
8627
  </xsl:choose>
8530
8628
  </xsl:variable>
@@ -10745,7 +10843,7 @@
10745
10843
  <xsl:if test="normalize-space() != ''">
10746
10844
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
10747
10845
  <xsl:call-template name="refine_termexample-name-style"/>
10748
- <xsl:apply-templates/>
10846
+ <xsl:apply-templates/> <!-- commented $namespace = 'ieee', https://github.com/metanorma/isodoc/issues/614-->
10749
10847
  </fo:inline>
10750
10848
  </xsl:if>
10751
10849
  </xsl:template>
@@ -10907,7 +11005,7 @@
10907
11005
  <xsl:otherwise>
10908
11006
  <fo:inline xsl:use-attribute-sets="example-name-style">
10909
11007
  <xsl:call-template name="refine_example-name-style"/>
10910
- <xsl:apply-templates/>:
11008
+ <xsl:apply-templates/>: <!-- $namespace = 'ieee', see https://github.com/metanorma/isodoc/issues/614 -->
10911
11009
  </fo:inline>
10912
11010
  </xsl:otherwise>
10913
11011
  </xsl:choose>
@@ -11089,15 +11187,17 @@
11089
11187
 
11090
11188
  <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11091
11189
  <fo:block role="BlockQuote">
11092
- <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
11190
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source') and not(local-name() = 'attribution')]"/> <!-- process all nested nodes, except author and source -->
11093
11191
  </fo:block>
11094
11192
  </fo:block-container>
11095
11193
  </fo:block-container>
11096
- <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
11194
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source'] or *[local-name() = 'attribution']">
11097
11195
  <fo:block xsl:use-attribute-sets="quote-source-style">
11098
11196
  <!-- — ISO, ISO 7301:2011, Clause 1 -->
11099
11197
  <xsl:apply-templates select="*[local-name() = 'author']"/>
11100
11198
  <xsl:apply-templates select="*[local-name() = 'source']"/>
11199
+ <!-- added for https://github.com/metanorma/isodoc/issues/607 -->
11200
+ <xsl:apply-templates select="*[local-name() = 'attribution']/*[local-name() = 'p']/node()"/>
11101
11201
  </fo:block>
11102
11202
  </xsl:if>
11103
11203
 
@@ -11119,9 +11219,13 @@
11119
11219
  </xsl:template>
11120
11220
 
11121
11221
  <xsl:template match="*[local-name() = 'author']">
11122
- <xsl:text>— </xsl:text>
11222
+ <xsl:if test="local-name(..) = 'quote'"> <!-- for old Presentation XML, https://github.com/metanorma/isodoc/issues/607 -->
11223
+ <xsl:text>— </xsl:text>
11224
+ </xsl:if>
11123
11225
  <xsl:apply-templates/>
11124
11226
  </xsl:template>
11227
+
11228
+ <xsl:template match="*[local-name() = 'quote']//*[local-name() = 'referenceFrom']"/>
11125
11229
  <!-- ====== -->
11126
11230
  <!-- ====== -->
11127
11231
 
@@ -11300,8 +11404,12 @@
11300
11404
  </xsl:template>
11301
11405
 
11302
11406
  <xsl:template match="*[local-name() = 'domain']">
11407
+ <!-- https://github.com/metanorma/isodoc/issues/607
11303
11408
  <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
11304
- <xsl:text> </xsl:text>
11409
+ <xsl:text> </xsl:text> -->
11410
+ <xsl:if test="not(@hidden = 'true')">
11411
+ <xsl:apply-templates/>
11412
+ </xsl:if>
11305
11413
  </xsl:template>
11306
11414
 
11307
11415
  <xsl:template match="*[local-name() = 'admitted']">
@@ -11349,6 +11457,29 @@
11349
11457
  <!-- END definition -->
11350
11458
  <!-- ========== -->
11351
11459
 
11460
+ <xsl:variable name="reviews_">
11461
+ <xsl:for-each select="//*[local-name() = 'review'][@from]">
11462
+ <xsl:copy>
11463
+ <xsl:copy-of select="@from"/>
11464
+ <xsl:copy-of select="@id"/>
11465
+ </xsl:copy>
11466
+ </xsl:for-each>
11467
+ </xsl:variable>
11468
+ <xsl:variable name="reviews" select="xalan:nodeset($reviews_)"/>
11469
+
11470
+ <xsl:template name="addReviewHelper">
11471
+ <!-- if there is review with from="...", then add small helper block for Annot tag adding, see 'review' template -->
11472
+ <xsl:variable name="curr_id" select="@id"/>
11473
+ <xsl:variable name="review_id" select="normalize-space($reviews//*[local-name() = 'review'][@from = $curr_id]/@id)"/>
11474
+ <xsl:if test="$review_id != ''"> <!-- i.e. if review found -->
11475
+ <fo:block keep-with-next="always" line-height="0.1" id="{$review_id}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{$review_id}" fox:alt-text="Annot___{$review_id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
11476
+ </xsl:if>
11477
+ <!-- <fo:block>
11478
+ <curr_id><xsl:value-of select="$curr_id"/></curr_id>
11479
+ <xsl:copy-of select="$reviews"/>
11480
+ </fo:block> -->
11481
+ </xsl:template>
11482
+
11352
11483
  <!-- main sections -->
11353
11484
  <xsl:template match="/*/*[local-name() = 'sections']/*" name="sections_node" priority="2">
11354
11485
 
@@ -11357,6 +11488,8 @@
11357
11488
 
11358
11489
  <xsl:call-template name="sections_element_style"/>
11359
11490
 
11491
+ <xsl:call-template name="addReviewHelper"/>
11492
+
11360
11493
  <xsl:apply-templates/>
11361
11494
  </fo:block>
11362
11495
 
@@ -11397,6 +11530,7 @@
11397
11530
 
11398
11531
  <fo:block>
11399
11532
  <xsl:call-template name="setId"/>
11533
+ <xsl:call-template name="addReviewHelper"/>
11400
11534
  <xsl:apply-templates/>
11401
11535
  </fo:block>
11402
11536
  </xsl:template>
@@ -11433,6 +11567,8 @@
11433
11567
 
11434
11568
  <xsl:call-template name="refine_clause_style"/>
11435
11569
 
11570
+ <xsl:call-template name="addReviewHelper"/>
11571
+
11436
11572
  <xsl:apply-templates/>
11437
11573
  </fo:block>
11438
11574
  </xsl:template>
@@ -11485,6 +11621,23 @@
11485
11621
 
11486
11622
  <xsl:variable name="id_from" select="normalize-space(current()/@from)"/>
11487
11623
 
11624
+ <xsl:if test="1 = 1">
11625
+ <xsl:choose>
11626
+ <!-- if there isn't the attribute '@from', then -->
11627
+ <xsl:when test="$id_from = ''">
11628
+ <fo:block id="{@id}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{@id}" fox:alt-text="Annot___{@id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
11629
+ </xsl:when>
11630
+ <!-- if there isn't element with id 'from', then create 'bookmark' here -->
11631
+ <xsl:when test="ancestor::*[contains(local-name(), '-standard')] and not(ancestor::*[contains(local-name(), '-standard')]//*[@id = $id_from])">
11632
+ <fo:block id="{@from}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{@from}" fox:alt-text="Annot___{@id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
11633
+ </xsl:when>
11634
+ <xsl:when test="not(/*[@id = $id_from]) and not(/*//*[@id = $id_from]) and not(preceding-sibling::*[@id = $id_from])">
11635
+ <fo:block id="{@from}" font-size="1pt" role="SKIP"><xsl:value-of select="$hair_space"/><fo:basic-link internal-destination="{@from}" fox:alt-text="Annot___{@id}" role="Annot"><xsl:value-of select="$hair_space"/></fo:basic-link></fo:block>
11636
+ </xsl:when>
11637
+ </xsl:choose>
11638
+ </xsl:if>
11639
+
11640
+ <xsl:if test="1 = 2">
11488
11641
  <xsl:choose>
11489
11642
  <!-- if there isn't the attribute '@from', then -->
11490
11643
  <xsl:when test="$id_from = ''">
@@ -11498,6 +11651,7 @@
11498
11651
  <fo:block id="{@from}" font-size="1pt"><xsl:value-of select="$hair_space"/></fo:block>
11499
11652
  </xsl:when>
11500
11653
  </xsl:choose>
11654
+ </xsl:if>
11501
11655
 
11502
11656
  </xsl:template>
11503
11657
 
@@ -12863,7 +13017,7 @@
12863
13017
  <!-- remove preprocess-xslt -->
12864
13018
  <xsl:template match="*[local-name() = 'preprocess-xslt']" mode="update_xml_step1"/>
12865
13019
 
12866
- <xsl:template match="*[local-name() = 'stem'] | *[local-name() = 'image'] | *[local-name() = 'sourcecode'] | *[local-name() = 'bibdata'] | *[local-name() = 'localized-strings']" mode="update_xml_step1">
13020
+ <xsl:template match="*[local-name() = 'stem'][not(.//*[local-name() = 'passthrough']) and not(.//*[@linebreak])] | *[local-name() = 'image'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'sourcecode'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'bibdata'][not(.//*[local-name() = 'passthrough'])] | *[local-name() = 'localized-strings']" mode="update_xml_step1">
12867
13021
  <xsl:copy-of select="."/>
12868
13022
  </xsl:template>
12869
13023
 
@@ -12929,6 +13083,22 @@
12929
13083
  </xsl:choose>
12930
13084
  </xsl:template>
12931
13085
 
13086
+ <xsl:variable name="regex_passthrough">.*\bpdf\b.*</xsl:variable>
13087
+ <xsl:template match="*[local-name() = 'passthrough']" mode="update_xml_step1">
13088
+ <!-- <xsl:if test="contains(@formats, ' pdf ')"> -->
13089
+ <xsl:if test="normalize-space(java:matches(java:java.lang.String.new(@formats), $regex_passthrough)) = 'true'">
13090
+ <xsl:apply-templates mode="update_xml_step1"/>
13091
+ </xsl:if>
13092
+ </xsl:template>
13093
+
13094
+ <!-- split math by element with @linebreak into maths -->
13095
+ <xsl:template match="mathml:math[.//mathml:mo[@linebreak] or .//mathml:mspace[@linebreak]]" mode="update_xml_step1">
13096
+ <xsl:variable name="maths">
13097
+ <xsl:apply-templates select="." mode="mathml_linebreak"/>
13098
+ </xsl:variable>
13099
+ <xsl:copy-of select="$maths"/>
13100
+ </xsl:template>
13101
+
12932
13102
  <!-- =========================================================================== -->
12933
13103
  <!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
12934
13104
  <!-- =========================================================================== -->
@@ -13032,6 +13202,8 @@
13032
13202
 
13033
13203
  <xsl:template name="insertOpeningElements">
13034
13204
  <xsl:param name="tree"/>
13205
+ <xsl:param name="xmlns"/>
13206
+ <xsl:param name="add_continue">true</xsl:param>
13035
13207
  <xsl:for-each select="$tree//element">
13036
13208
  <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
13037
13209
  <xsl:value-of select="."/>
@@ -13042,7 +13214,8 @@
13042
13214
  <xsl:value-of select="."/>
13043
13215
  <xsl:text>"</xsl:text>
13044
13216
  </xsl:for-each>
13045
- <xsl:if test="position() = 1"> continue="true"</xsl:if>
13217
+ <xsl:if test="position() = 1 and $add_continue = 'true'"> continue="true"</xsl:if>
13218
+ <xsl:if test="position() = 1 and $xmlns != ''"> xmlns="<xsl:value-of select="$xmlns"/>"</xsl:if>
13046
13219
  <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
13047
13220
  <xsl:if test="$debug = 'true'">
13048
13221
  <xsl:message>&lt;<xsl:value-of select="."/>&gt;</xsl:message>