metanorma-ieee 0.1.1 → 0.1.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.
- checksums.yaml +4 -4
- data/lib/isodoc/ieee/html/htmlstyle.css +6 -0
- data/lib/isodoc/ieee/html/wordstyle.css +17 -1
- data/lib/isodoc/ieee/html/wordstyle.scss +17 -1
- data/lib/isodoc/ieee/i18n-en.yaml +1 -1
- data/lib/isodoc/ieee/ieee.amendment.xsl +331 -71
- data/lib/isodoc/ieee/ieee.standard.xsl +331 -71
- data/lib/isodoc/ieee/init.rb +1 -1
- data/lib/isodoc/ieee/presentation_ref.rb +2 -0
- data/lib/isodoc/ieee/presentation_terms.rb +15 -17
- data/lib/isodoc/ieee/presentation_xml_convert.rb +1 -1
- data/lib/isodoc/ieee/word_cleanup.rb +8 -0
- data/lib/isodoc/ieee/xref.rb +9 -13
- data/lib/metanorma/ieee/biblio.rng +5 -0
- data/lib/metanorma/ieee/boilerplate.xml +39 -39
- data/lib/metanorma/ieee/cleanup.rb +9 -5
- data/lib/metanorma/ieee/converter.rb +2 -2
- data/lib/metanorma/ieee/ieee.rng +16 -0
- data/lib/metanorma/ieee/isodoc.rng +47 -13
- data/lib/metanorma/ieee/term_lookup_cleanup.rb +3 -2
- data/lib/metanorma/ieee/validate.rb +1 -1
- data/lib/metanorma/ieee/validate_style.rb +9 -11
- data/lib/metanorma/ieee/version.rb +1 -1
- data/lib/relaton/render/config.yml +1 -1
- data/metanorma-ieee.gemspec +3 -2
- metadata +4 -11
- data/.github/workflows/automerge.yml +0 -31
- data/.github/workflows/rake.yml +0 -15
- data/.github/workflows/release.yml +0 -24
- data/Rakefile +0 -8
- data/bin/console +0 -14
- data/bin/rspec +0 -17
- data/bin/setup +0 -8
@@ -3,7 +3,7 @@
|
|
3
3
|
<xsl:output method="xml" encoding="UTF-8" indent="no"/>
|
4
4
|
|
5
5
|
<!-- mandatory 'key' -->
|
6
|
-
<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"/>
|
6
|
+
<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"/>
|
7
7
|
|
8
8
|
<!-- mandatory variable -->
|
9
9
|
|
@@ -40,7 +40,7 @@
|
|
40
40
|
<!-- mandatory variable -->
|
41
41
|
<xsl:variable name="ids">
|
42
42
|
<xsl:for-each select="//*[@id]">
|
43
|
-
<id><xsl:value-of select="@id"/></id>
|
43
|
+
<id name="{local-name()}"><xsl:value-of select="@id"/></id>
|
44
44
|
</xsl:for-each>
|
45
45
|
</xsl:variable>
|
46
46
|
|
@@ -548,6 +548,8 @@
|
|
548
548
|
|
549
549
|
<fo:block break-after="page"/>
|
550
550
|
|
551
|
+
<!-- Second page -->
|
552
|
+
|
551
553
|
<fo:block font-family="Arial" text-align="justify">
|
552
554
|
<fo:block>
|
553
555
|
<fo:inline font-weight="bold">
|
@@ -566,6 +568,7 @@
|
|
566
568
|
<xsl:if test="position() != last()">, </xsl:if>
|
567
569
|
</xsl:for-each>
|
568
570
|
</fo:block>
|
571
|
+
<xsl:apply-templates select="/ieee:ieee-standard/ieee:preface/ieee:acknowledgements"/>
|
569
572
|
</fo:block>
|
570
573
|
|
571
574
|
<!-- Example:
|
@@ -728,6 +731,7 @@
|
|
728
731
|
<xsl:if test="position() != last()">, </xsl:if>
|
729
732
|
</xsl:for-each>
|
730
733
|
</fo:block>
|
734
|
+
<xsl:apply-templates select="/ieee:ieee-standard/ieee:preface/ieee:acknowledgements"/>
|
731
735
|
</fo:block>
|
732
736
|
|
733
737
|
<!-- Example:
|
@@ -1597,6 +1601,12 @@
|
|
1597
1601
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
1598
1602
|
</xsl:template>
|
1599
1603
|
|
1604
|
+
<xsl:template match="ieee:preface/ieee:acknowledgements" priority="3">
|
1605
|
+
<fo:block>
|
1606
|
+
<xsl:apply-templates/>
|
1607
|
+
</fo:block>
|
1608
|
+
</xsl:template>
|
1609
|
+
|
1600
1610
|
<xsl:template match="text()" priority="2" mode="uppercase">
|
1601
1611
|
<xsl:value-of select="java:toUpperCase(java:java.lang.String.new(.))"/>
|
1602
1612
|
</xsl:template>
|
@@ -2301,6 +2311,7 @@
|
|
2301
2311
|
<xsl:otherwise>
|
2302
2312
|
<xsl:choose>
|
2303
2313
|
<xsl:when test="@type = 'section-title'">12pt</xsl:when>
|
2314
|
+
<xsl:when test="ancestor::ieee:acknowledgements">inherit</xsl:when>
|
2304
2315
|
<xsl:when test="$level = 1">12pt</xsl:when>
|
2305
2316
|
<xsl:when test="$level = 2">11pt</xsl:when>
|
2306
2317
|
<xsl:otherwise>10pt</xsl:otherwise> <!-- 3rd, 4th, ... levels -->
|
@@ -2804,7 +2815,7 @@
|
|
2804
2815
|
<fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
|
2805
2816
|
|
2806
2817
|
<!-- no highlight term's names -->
|
2807
|
-
<xsl:if test="normalize-space() != '' and string-length(normalize-space()) = string-length(translate(normalize-space(), '0123456789', ''))
|
2818
|
+
<xsl:if test="normalize-space() != '' and xalan:nodeset($ids)/id[. = current()/@target]/@name = 'term'"> <!-- string-length(normalize-space()) = string-length(translate(normalize-space(), '0123456789', '')) and not(contains(normalize-space(), 'Annex')) -->
|
2808
2819
|
<xsl:attribute name="color">inherit</xsl:attribute>
|
2809
2820
|
<xsl:attribute name="text-decoration">none</xsl:attribute>
|
2810
2821
|
</xsl:if>
|
@@ -3722,6 +3733,8 @@
|
|
3722
3733
|
</xsl:choose>
|
3723
3734
|
</xsl:template>
|
3724
3735
|
|
3736
|
+
<xsl:strip-space elements="ieee:xref"/>
|
3737
|
+
|
3725
3738
|
<!-- external parameters -->
|
3726
3739
|
|
3727
3740
|
<xsl:param name="svg_images"/> <!-- svg images array -->
|
@@ -4139,6 +4152,16 @@
|
|
4139
4152
|
|
4140
4153
|
</xsl:attribute-set>
|
4141
4154
|
|
4155
|
+
<xsl:attribute-set name="pre-style">
|
4156
|
+
<xsl:attribute name="font-family">Courier New, <xsl:value-of select="$font_noto_sans_mono"/></xsl:attribute>
|
4157
|
+
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
|
4158
|
+
|
4159
|
+
<xsl:attribute name="margin-top">5pt</xsl:attribute>
|
4160
|
+
<xsl:attribute name="margin-bottom">5pt</xsl:attribute>
|
4161
|
+
<xsl:attribute name="font-size">95%</xsl:attribute>
|
4162
|
+
|
4163
|
+
</xsl:attribute-set>
|
4164
|
+
|
4142
4165
|
<xsl:attribute-set name="permission-style">
|
4143
4166
|
|
4144
4167
|
</xsl:attribute-set>
|
@@ -4246,9 +4269,16 @@
|
|
4246
4269
|
<xsl:variable name="table-border_">
|
4247
4270
|
|
4248
4271
|
1pt solid black
|
4272
|
+
|
4273
|
+
|
4249
4274
|
</xsl:variable>
|
4250
4275
|
<xsl:variable name="table-border" select="normalize-space($table-border_)"/>
|
4251
4276
|
|
4277
|
+
<xsl:variable name="table-cell-border_">
|
4278
|
+
|
4279
|
+
</xsl:variable>
|
4280
|
+
<xsl:variable name="table-cell-border" select="normalize-space($table-cell-border_)"/>
|
4281
|
+
|
4252
4282
|
<xsl:attribute-set name="table-container-style">
|
4253
4283
|
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
4254
4284
|
<xsl:attribute name="margin-right">0mm</xsl:attribute>
|
@@ -4262,8 +4292,6 @@
|
|
4262
4292
|
<xsl:attribute-set name="table-style">
|
4263
4293
|
<xsl:attribute name="table-omit-footer-at-break">true</xsl:attribute>
|
4264
4294
|
<xsl:attribute name="table-layout">fixed</xsl:attribute>
|
4265
|
-
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
4266
|
-
<xsl:attribute name="margin-right">0mm</xsl:attribute>
|
4267
4295
|
|
4268
4296
|
<xsl:attribute name="border"><xsl:value-of select="$table-border"/></xsl:attribute>
|
4269
4297
|
|
@@ -5111,17 +5139,22 @@
|
|
5111
5139
|
</xsl:for-each>
|
5112
5140
|
</xsl:template>
|
5113
5141
|
|
5142
|
+
<xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
|
5114
5143
|
<xsl:variable name="tag_fo_inline_keep-together_within-line_open">###fo:inline keep-together_within-line###</xsl:variable>
|
5115
5144
|
<xsl:variable name="tag_fo_inline_keep-together_within-line_close">###/fo:inline keep-together_within-line###</xsl:variable>
|
5116
5145
|
<xsl:template match="text()" name="text">
|
5117
5146
|
|
5118
|
-
<xsl:
|
5119
|
-
|
5120
|
-
|
5121
|
-
|
5122
|
-
|
5123
|
-
|
5124
|
-
|
5147
|
+
<xsl:choose>
|
5148
|
+
<xsl:when test="ancestor::*[local-name() = 'table']"><xsl:value-of select="."/></xsl:when>
|
5149
|
+
<xsl:otherwise>
|
5150
|
+
<xsl:variable name="text" select="java:replaceAll(java:java.lang.String.new(.),$regex_standard_reference,concat($tag_fo_inline_keep-together_within-line_open,'$1',$tag_fo_inline_keep-together_within-line_close))"/>
|
5151
|
+
<xsl:call-template name="replace_fo_inline_tags">
|
5152
|
+
<xsl:with-param name="tag_open" select="$tag_fo_inline_keep-together_within-line_open"/>
|
5153
|
+
<xsl:with-param name="tag_close" select="$tag_fo_inline_keep-together_within-line_close"/>
|
5154
|
+
<xsl:with-param name="text" select="$text"/>
|
5155
|
+
</xsl:call-template>
|
5156
|
+
</xsl:otherwise>
|
5157
|
+
</xsl:choose>
|
5125
5158
|
|
5126
5159
|
</xsl:template>
|
5127
5160
|
|
@@ -5390,6 +5423,12 @@
|
|
5390
5423
|
<xsl:variable name="table_attributes">
|
5391
5424
|
|
5392
5425
|
<xsl:element name="table_attributes" use-attribute-sets="table-style">
|
5426
|
+
|
5427
|
+
<xsl:if test="$margin-side != 0">
|
5428
|
+
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
5429
|
+
<xsl:attribute name="margin-right">0mm</xsl:attribute>
|
5430
|
+
</xsl:if>
|
5431
|
+
|
5393
5432
|
<xsl:attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></xsl:attribute>
|
5394
5433
|
|
5395
5434
|
<xsl:if test="$current_template = 'whitepaper' or $current_template = 'icap-whitepaper' or $current_template = 'industry-connection-report'">
|
@@ -6194,6 +6233,10 @@
|
|
6194
6233
|
<xsl:template match="*[local-name()='tr']">
|
6195
6234
|
<fo:table-row xsl:use-attribute-sets="table-body-row-style">
|
6196
6235
|
|
6236
|
+
<xsl:if test="count(*) = count(*[local-name() = 'th'])"> <!-- row contains 'th' only -->
|
6237
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
6238
|
+
</xsl:if>
|
6239
|
+
|
6197
6240
|
<xsl:if test="ancestor::*[local-name() = 'feedback-statement']">
|
6198
6241
|
<xsl:attribute name="min-height">0mm</xsl:attribute>
|
6199
6242
|
</xsl:if>
|
@@ -7169,7 +7212,8 @@
|
|
7169
7212
|
<xsl:copy-of select="node()"/>
|
7170
7213
|
</td>
|
7171
7214
|
<td>
|
7172
|
-
<xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]"/>
|
7215
|
+
<!-- <xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]"/> -->
|
7216
|
+
<xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]" mode="dl_if"/>
|
7173
7217
|
<!-- get paragraphs from nested 'dl' -->
|
7174
7218
|
<xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]/*[local-name() = 'dl']" mode="dl_if_nested"/>
|
7175
7219
|
</td>
|
@@ -7177,6 +7221,53 @@
|
|
7177
7221
|
</xsl:template>
|
7178
7222
|
<xsl:template match="*[local-name()='dd']" mode="dl_if"/>
|
7179
7223
|
|
7224
|
+
<xsl:template match="*" mode="dl_if">
|
7225
|
+
<xsl:copy-of select="."/>
|
7226
|
+
</xsl:template>
|
7227
|
+
|
7228
|
+
<xsl:template match="*[local-name() = 'p']" mode="dl_if">
|
7229
|
+
<xsl:param name="indent"/>
|
7230
|
+
<p>
|
7231
|
+
<xsl:copy-of select="@*"/>
|
7232
|
+
<xsl:value-of select="$indent"/>
|
7233
|
+
<xsl:copy-of select="node()"/>
|
7234
|
+
</p>
|
7235
|
+
|
7236
|
+
</xsl:template>
|
7237
|
+
|
7238
|
+
<xsl:template match="*[local-name() = 'ul' or local-name() = 'ol']" mode="dl_if">
|
7239
|
+
<xsl:variable name="list_rendered_">
|
7240
|
+
<xsl:apply-templates select="."/>
|
7241
|
+
</xsl:variable>
|
7242
|
+
<xsl:variable name="list_rendered" select="xalan:nodeset($list_rendered_)"/>
|
7243
|
+
|
7244
|
+
<xsl:variable name="indent">
|
7245
|
+
<xsl:for-each select="($list_rendered//fo:block[not(.//fo:block)])[1]">
|
7246
|
+
<xsl:apply-templates select="ancestor::*[@provisional-distance-between-starts]/@provisional-distance-between-starts" mode="dl_if"/>
|
7247
|
+
</xsl:for-each>
|
7248
|
+
</xsl:variable>
|
7249
|
+
|
7250
|
+
<xsl:apply-templates mode="dl_if">
|
7251
|
+
<xsl:with-param name="indent" select="$indent"/>
|
7252
|
+
</xsl:apply-templates>
|
7253
|
+
</xsl:template>
|
7254
|
+
|
7255
|
+
<xsl:template match="*[local-name() = 'li']" mode="dl_if">
|
7256
|
+
<xsl:param name="indent"/>
|
7257
|
+
<xsl:apply-templates mode="dl_if">
|
7258
|
+
<xsl:with-param name="indent" select="$indent"/>
|
7259
|
+
</xsl:apply-templates>
|
7260
|
+
</xsl:template>
|
7261
|
+
|
7262
|
+
<xsl:template match="@provisional-distance-between-starts" mode="dl_if">
|
7263
|
+
<xsl:variable name="value" select="round(substring-before(.,'mm'))"/>
|
7264
|
+
<!-- emulate left indent for list item -->
|
7265
|
+
<xsl:call-template name="repeat">
|
7266
|
+
<xsl:with-param name="char" select="'x'"/>
|
7267
|
+
<xsl:with-param name="count" select="$value"/>
|
7268
|
+
</xsl:call-template>
|
7269
|
+
</xsl:template>
|
7270
|
+
|
7180
7271
|
<xsl:template match="*[local-name()='dl']" mode="dl_if_nested">
|
7181
7272
|
<xsl:for-each select="*[local-name() = 'dt']">
|
7182
7273
|
<p>
|
@@ -7570,6 +7661,7 @@
|
|
7570
7661
|
</word>
|
7571
7662
|
<xsl:call-template name="tokenize_with_tags">
|
7572
7663
|
<xsl:with-param name="text" select="substring-after($text, $separator)"/>
|
7664
|
+
<xsl:with-param name="tags" select="$tags"/>
|
7573
7665
|
</xsl:call-template>
|
7574
7666
|
</xsl:otherwise>
|
7575
7667
|
</xsl:choose>
|
@@ -7609,8 +7701,18 @@
|
|
7609
7701
|
|
7610
7702
|
<xsl:template name="add-zero-spaces-java">
|
7611
7703
|
<xsl:param name="text" select="."/>
|
7612
|
-
<!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space
|
7613
|
-
<xsl:
|
7704
|
+
<!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space, arrow right -->
|
7705
|
+
<xsl:variable name="text1" select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| |→)','$1')"/>
|
7706
|
+
<!-- add zero-width space (#x200B) after characters: 'great than' -->
|
7707
|
+
<xsl:variable name="text2" select="java:replaceAll(java:java.lang.String.new($text1), '(\u003e)(?!\u003e)', '$1')"/><!-- negative lookahead: 'great than' not followed by 'great than' -->
|
7708
|
+
<!-- add zero-width space (#x200B) before characters: 'less than' -->
|
7709
|
+
<xsl:variable name="text3" select="java:replaceAll(java:java.lang.String.new($text2), '(?<!\u003c)(\u003c)', '$1')"/> <!-- (?<!\u003c)(\u003c) --> <!-- negative lookbehind: 'less than' not preceeded by 'less than' -->
|
7710
|
+
<!-- add zero-width space (#x200B) before character: { -->
|
7711
|
+
<xsl:variable name="text4" select="java:replaceAll(java:java.lang.String.new($text3), '(?<!\W)(\{)', '$1')"/> <!-- negative lookbehind: '{' not preceeded by 'punctuation char' -->
|
7712
|
+
<!-- add zero-width space (#x200B) after character: , -->
|
7713
|
+
<xsl:variable name="text5" select="java:replaceAll(java:java.lang.String.new($text4), '(\,)(?!\d)', '$1')"/> <!-- negative lookahead: ',' not followed by digit -->
|
7714
|
+
|
7715
|
+
<xsl:value-of select="$text5"/>
|
7614
7716
|
</xsl:template>
|
7615
7717
|
|
7616
7718
|
<xsl:template name="add-zero-spaces-link-java">
|
@@ -7756,7 +7858,7 @@
|
|
7756
7858
|
</xsl:copy>
|
7757
7859
|
</xsl:template>
|
7758
7860
|
|
7759
|
-
<xsl:template match="*[local-name()='th' or local-name() = 'td'][not(*[local-name()='br']) and not(*[local-name()='p'])]" mode="table-without-br">
|
7861
|
+
<xsl:template match="*[local-name()='th' or local-name() = 'td'][not(*[local-name()='br']) and not(*[local-name()='p']) and not(*[local-name()='sourcecode'])]" mode="table-without-br">
|
7760
7862
|
<xsl:copy>
|
7761
7863
|
<xsl:copy-of select="@*"/>
|
7762
7864
|
<p>
|
@@ -7804,6 +7906,28 @@
|
|
7804
7906
|
</xsl:for-each>
|
7805
7907
|
</xsl:template>
|
7806
7908
|
|
7909
|
+
<xsl:template match="*[local-name()='th' or local-name()='td']/*[local-name() = 'sourcecode']" mode="table-without-br">
|
7910
|
+
<xsl:apply-templates mode="table-without-br"/>
|
7911
|
+
</xsl:template>
|
7912
|
+
|
7913
|
+
<xsl:template match="*[local-name()='th' or local-name()='td']/*[local-name() = 'sourcecode']/text()[contains(., ' ') or contains(., ' ')]" mode="table-without-br">
|
7914
|
+
|
7915
|
+
<xsl:variable name="sep">###SOURCECODE_NEWLINE###</xsl:variable>
|
7916
|
+
<xsl:variable name="sourcecode_text" select="java:replaceAll(java:java.lang.String.new(.),'( | | )', $sep)"/>
|
7917
|
+
<xsl:variable name="items">
|
7918
|
+
<xsl:call-template name="split">
|
7919
|
+
<xsl:with-param name="pText" select="$sourcecode_text"/>
|
7920
|
+
<xsl:with-param name="sep" select="$sep"/>
|
7921
|
+
<xsl:with-param name="normalize-space">false</xsl:with-param>
|
7922
|
+
</xsl:call-template>
|
7923
|
+
</xsl:variable>
|
7924
|
+
<xsl:for-each select="xalan:nodeset($items)/*">
|
7925
|
+
<p>
|
7926
|
+
<sourcecode><xsl:copy-of select="node()"/></sourcecode>
|
7927
|
+
</p>
|
7928
|
+
</xsl:for-each>
|
7929
|
+
</xsl:template>
|
7930
|
+
|
7807
7931
|
<!-- remove redundant white spaces -->
|
7808
7932
|
<xsl:template match="text()[not(ancestor::*[local-name() = 'sourcecode'])]" mode="table-without-br">
|
7809
7933
|
<xsl:variable name="text" select="translate(.,'	 ','')"/>
|
@@ -8114,6 +8238,7 @@
|
|
8114
8238
|
<xsl:if test="ancestor::*[local-name() = 'sub']"><tag>sub</tag></xsl:if>
|
8115
8239
|
<xsl:if test="ancestor::*[local-name() = 'sup']"><tag>sup</tag></xsl:if>
|
8116
8240
|
<xsl:if test="ancestor::*[local-name() = 'tt']"><tag>tt</tag></xsl:if>
|
8241
|
+
<xsl:if test="ancestor::*[local-name() = 'sourcecode']"><tag>sourcecode</tag></xsl:if>
|
8117
8242
|
<xsl:if test="ancestor::*[local-name() = 'keep-together_within-line']"><tag>keep-together_within-line</tag></xsl:if>
|
8118
8243
|
</tags>
|
8119
8244
|
</xsl:template>
|
@@ -8176,6 +8301,9 @@
|
|
8176
8301
|
<xsl:value-of select="substring($str, 2)"/>
|
8177
8302
|
</xsl:template>
|
8178
8303
|
|
8304
|
+
<!-- ======================================= -->
|
8305
|
+
<!-- math -->
|
8306
|
+
<!-- ======================================= -->
|
8179
8307
|
<xsl:template match="mathml:math">
|
8180
8308
|
<xsl:variable name="isAdded" select="@added"/>
|
8181
8309
|
<xsl:variable name="isDeleted" select="@deleted"/>
|
@@ -8226,14 +8354,59 @@
|
|
8226
8354
|
<xsl:value-of select="$comment_text"/>
|
8227
8355
|
</xsl:template>
|
8228
8356
|
|
8357
|
+
<xsl:template match="*[local-name() = 'asciimath']">
|
8358
|
+
<xsl:param name="process" select="'false'"/>
|
8359
|
+
<xsl:if test="$process = 'true'">
|
8360
|
+
<xsl:apply-templates/>
|
8361
|
+
</xsl:if>
|
8362
|
+
</xsl:template>
|
8363
|
+
|
8364
|
+
<xsl:template match="*[local-name() = 'latexmath']"/>
|
8365
|
+
|
8366
|
+
<xsl:template name="getMathml_asciimath_text">
|
8367
|
+
<xsl:variable name="asciimath" select="../*[local-name() = 'asciimath']"/>
|
8368
|
+
<xsl:variable name="latexmath">
|
8369
|
+
|
8370
|
+
<xsl:value-of select="../*[local-name() = 'latexmath']"/>
|
8371
|
+
|
8372
|
+
</xsl:variable>
|
8373
|
+
<xsl:variable name="asciimath_text_following">
|
8374
|
+
<xsl:choose>
|
8375
|
+
<xsl:when test="normalize-space($latexmath) != ''">
|
8376
|
+
<xsl:value-of select="$latexmath"/>
|
8377
|
+
</xsl:when>
|
8378
|
+
<xsl:when test="normalize-space($asciimath) != ''">
|
8379
|
+
<xsl:value-of select="$asciimath"/>
|
8380
|
+
</xsl:when>
|
8381
|
+
<xsl:otherwise>
|
8382
|
+
<xsl:value-of select="following-sibling::node()[1][self::comment()]"/>
|
8383
|
+
</xsl:otherwise>
|
8384
|
+
</xsl:choose>
|
8385
|
+
</xsl:variable>
|
8386
|
+
<xsl:variable name="asciimath_text_">
|
8387
|
+
<xsl:choose>
|
8388
|
+
<xsl:when test="normalize-space($asciimath_text_following) != ''">
|
8389
|
+
<xsl:value-of select="$asciimath_text_following"/>
|
8390
|
+
</xsl:when>
|
8391
|
+
<xsl:otherwise>
|
8392
|
+
<xsl:value-of select="normalize-space(translate(.,' ',' '))"/>
|
8393
|
+
</xsl:otherwise>
|
8394
|
+
</xsl:choose>
|
8395
|
+
</xsl:variable>
|
8396
|
+
<xsl:variable name="asciimath_text_2" select="java:org.metanorma.fop.Util.unescape($asciimath_text_)"/>
|
8397
|
+
<xsl:variable name="asciimath_text" select="java:trim(java:java.lang.String.new($asciimath_text_2))"/>
|
8398
|
+
<xsl:value-of select="$asciimath_text"/>
|
8399
|
+
</xsl:template>
|
8400
|
+
|
8229
8401
|
<xsl:template name="mathml_instream_object">
|
8230
|
-
<xsl:param name="
|
8402
|
+
<xsl:param name="asciimath_text"/>
|
8231
8403
|
<xsl:param name="mathml_content"/>
|
8232
8404
|
|
8233
|
-
<xsl:variable name="
|
8405
|
+
<xsl:variable name="asciimath_text_">
|
8234
8406
|
<xsl:choose>
|
8235
|
-
<xsl:when test="normalize-space($
|
8236
|
-
<xsl:otherwise><xsl:call-template name="getMathml_comment_text"/></xsl:otherwise>
|
8407
|
+
<xsl:when test="normalize-space($asciimath_text) != ''"><xsl:value-of select="$asciimath_text"/></xsl:when>
|
8408
|
+
<!-- <xsl:otherwise><xsl:call-template name="getMathml_comment_text"/></xsl:otherwise> -->
|
8409
|
+
<xsl:otherwise><xsl:call-template name="getMathml_asciimath_text"/></xsl:otherwise>
|
8237
8410
|
</xsl:choose>
|
8238
8411
|
</xsl:variable>
|
8239
8412
|
|
@@ -8250,10 +8423,10 @@
|
|
8250
8423
|
</xsl:attribute>
|
8251
8424
|
|
8252
8425
|
<!-- <xsl:if test="$add_math_as_text = 'true'"> -->
|
8253
|
-
<xsl:if test="normalize-space($
|
8426
|
+
<xsl:if test="normalize-space($asciimath_text_) != ''">
|
8254
8427
|
<!-- put Mathin Alternate Text -->
|
8255
8428
|
<xsl:attribute name="fox:alt-text">
|
8256
|
-
<xsl:value-of select="$
|
8429
|
+
<xsl:value-of select="$asciimath_text_"/>
|
8257
8430
|
</xsl:attribute>
|
8258
8431
|
</xsl:if>
|
8259
8432
|
<!-- </xsl:if> -->
|
@@ -8326,6 +8499,29 @@
|
|
8326
8499
|
<xsl:value-of select="."/><xsl:value-of select="$zero_width_space"/>
|
8327
8500
|
</xsl:template>
|
8328
8501
|
|
8502
|
+
<!-- Examples:
|
8503
|
+
<stem type="AsciiMath">x = 1</stem>
|
8504
|
+
<stem type="AsciiMath"><asciimath>x = 1</asciimath></stem>
|
8505
|
+
<stem type="AsciiMath"><asciimath>x = 1</asciimath><latexmath>x = 1</latexmath></stem>
|
8506
|
+
-->
|
8507
|
+
<xsl:template match="*[local-name() = 'stem'][@type = 'AsciiMath'][count(*) = 0]/text() | *[local-name() = 'stem'][@type = 'AsciiMath'][*[local-name() = 'asciimath']]" priority="3">
|
8508
|
+
<fo:inline xsl:use-attribute-sets="mathml-style">
|
8509
|
+
|
8510
|
+
<xsl:choose>
|
8511
|
+
<xsl:when test="self::text()"><xsl:value-of select="."/></xsl:when>
|
8512
|
+
<xsl:otherwise>
|
8513
|
+
<xsl:apply-templates>
|
8514
|
+
<xsl:with-param name="process">true</xsl:with-param>
|
8515
|
+
</xsl:apply-templates>
|
8516
|
+
</xsl:otherwise>
|
8517
|
+
</xsl:choose>
|
8518
|
+
|
8519
|
+
</fo:inline>
|
8520
|
+
</xsl:template>
|
8521
|
+
<!-- ======================================= -->
|
8522
|
+
<!-- END: math -->
|
8523
|
+
<!-- ======================================= -->
|
8524
|
+
|
8329
8525
|
<xsl:template match="*[local-name()='localityStack']"/>
|
8330
8526
|
|
8331
8527
|
<xsl:template match="*[local-name()='link']" name="link">
|
@@ -8540,6 +8736,12 @@
|
|
8540
8736
|
|
8541
8737
|
<fo:block-container margin-left="0mm">
|
8542
8738
|
|
8739
|
+
<!-- <xsl:if test="$namespace = 'iho'">
|
8740
|
+
<xsl:if test="ancestor::iho:td">
|
8741
|
+
<xsl:attribute name="font-size">12pt</xsl:attribute>
|
8742
|
+
</xsl:if>
|
8743
|
+
</xsl:if> -->
|
8744
|
+
|
8543
8745
|
<fo:block>
|
8544
8746
|
|
8545
8747
|
<fo:inline xsl:use-attribute-sets="note-name-style">
|
@@ -9685,42 +9887,20 @@
|
|
9685
9887
|
<xsl:apply-templates mode="contents_item"/>
|
9686
9888
|
</xsl:template>
|
9687
9889
|
|
9688
|
-
<!--
|
9689
|
-
<!-- sourcecode
|
9690
|
-
<!--
|
9890
|
+
<!-- =============== -->
|
9891
|
+
<!-- sourcecode -->
|
9892
|
+
<!-- =============== -->
|
9691
9893
|
<xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
|
9692
9894
|
|
9693
|
-
<
|
9694
|
-
|
9695
|
-
|
9696
|
-
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
9697
|
-
</xsl:if>
|
9895
|
+
<xsl:variable name="sourcecode_attributes">
|
9896
|
+
<xsl:element name="sourcecode_attributes" use-attribute-sets="sourcecode-style">
|
9897
|
+
<xsl:variable name="_font-size">
|
9698
9898
|
|
9699
|
-
|
9700
|
-
<xsl:attribute name="margin-right">0mm</xsl:attribute>
|
9701
|
-
</xsl:if>
|
9899
|
+
<!-- 9 -->
|
9702
9900
|
|
9703
|
-
|
9704
|
-
|
9705
|
-
|
9706
|
-
<xsl:attribute name="margin-left">
|
9707
|
-
<xsl:choose>
|
9708
|
-
<xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
|
9709
|
-
<xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
|
9710
|
-
</xsl:choose>
|
9711
|
-
</xsl:attribute>
|
9712
|
-
|
9713
|
-
</xsl:if>
|
9714
|
-
<fo:block-container margin-left="0mm">
|
9715
|
-
|
9716
|
-
<fo:block xsl:use-attribute-sets="sourcecode-style">
|
9717
|
-
<xsl:variable name="_font-size">
|
9718
|
-
|
9719
|
-
<!-- 9 -->
|
9720
|
-
|
9721
|
-
<!-- <xsl:if test="$namespace = 'ieee'">
|
9722
|
-
<xsl:if test="$current_template = 'standard'">8</xsl:if>
|
9723
|
-
</xsl:if> -->
|
9901
|
+
<!-- <xsl:if test="$namespace = 'ieee'">
|
9902
|
+
<xsl:if test="$current_template = 'standard'">8</xsl:if>
|
9903
|
+
</xsl:if> -->
|
9724
9904
|
|
9725
9905
|
</xsl:variable>
|
9726
9906
|
|
@@ -9735,14 +9915,60 @@
|
|
9735
9915
|
</xsl:choose>
|
9736
9916
|
</xsl:attribute>
|
9737
9917
|
</xsl:if>
|
9918
|
+
</xsl:element>
|
9919
|
+
</xsl:variable>
|
9738
9920
|
|
9921
|
+
<xsl:choose>
|
9922
|
+
<xsl:when test="$isGenerateTableIF = 'true' and (ancestor::*[local-name() = 'td'] or ancestor::*[local-name() = 'th'])">
|
9923
|
+
<xsl:for-each select="xalan:nodeset($sourcecode_attributes)/sourcecode_attributes/@*">
|
9924
|
+
<xsl:attribute name="{local-name()}">
|
9925
|
+
<xsl:value-of select="."/>
|
9926
|
+
</xsl:attribute>
|
9927
|
+
</xsl:for-each>
|
9739
9928
|
<xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
|
9740
|
-
</
|
9929
|
+
</xsl:when>
|
9741
9930
|
|
9742
|
-
|
9931
|
+
<xsl:otherwise>
|
9932
|
+
<fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
|
9743
9933
|
|
9744
|
-
|
9745
|
-
|
9934
|
+
<xsl:if test="not(ancestor::*[local-name() = 'li']) or ancestor::*[local-name() = 'example']">
|
9935
|
+
<xsl:attribute name="margin-left">0mm</xsl:attribute>
|
9936
|
+
</xsl:if>
|
9937
|
+
|
9938
|
+
<xsl:if test="ancestor::*[local-name() = 'example']">
|
9939
|
+
<xsl:attribute name="margin-right">0mm</xsl:attribute>
|
9940
|
+
</xsl:if>
|
9941
|
+
|
9942
|
+
<xsl:copy-of select="@id"/>
|
9943
|
+
|
9944
|
+
<xsl:if test="parent::*[local-name() = 'note']">
|
9945
|
+
<xsl:attribute name="margin-left">
|
9946
|
+
<xsl:choose>
|
9947
|
+
<xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
|
9948
|
+
<xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
|
9949
|
+
</xsl:choose>
|
9950
|
+
</xsl:attribute>
|
9951
|
+
|
9952
|
+
</xsl:if>
|
9953
|
+
<fo:block-container margin-left="0mm">
|
9954
|
+
|
9955
|
+
<fo:block xsl:use-attribute-sets="sourcecode-style">
|
9956
|
+
|
9957
|
+
<xsl:for-each select="xalan:nodeset($sourcecode_attributes)/sourcecode_attributes/@*">
|
9958
|
+
<xsl:attribute name="{local-name()}">
|
9959
|
+
<xsl:value-of select="."/>
|
9960
|
+
</xsl:attribute>
|
9961
|
+
</xsl:for-each>
|
9962
|
+
|
9963
|
+
<xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
|
9964
|
+
</fo:block>
|
9965
|
+
|
9966
|
+
<xsl:apply-templates select="*[local-name()='name']"/> <!-- show sourcecode's name AFTER content -->
|
9967
|
+
|
9968
|
+
</fo:block-container>
|
9969
|
+
</fo:block-container>
|
9970
|
+
</xsl:otherwise>
|
9971
|
+
</xsl:choose>
|
9746
9972
|
</xsl:template>
|
9747
9973
|
|
9748
9974
|
<xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
|
@@ -9984,8 +10210,22 @@
|
|
9984
10210
|
</fo:block>
|
9985
10211
|
</xsl:if>
|
9986
10212
|
</xsl:template>
|
9987
|
-
<!--
|
9988
|
-
<!--
|
10213
|
+
<!-- =============== -->
|
10214
|
+
<!-- END sourcecode -->
|
10215
|
+
<!-- =============== -->
|
10216
|
+
|
10217
|
+
<!-- =============== -->
|
10218
|
+
<!-- pre -->
|
10219
|
+
<!-- =============== -->
|
10220
|
+
<xsl:template match="*[local-name()='pre']" name="pre">
|
10221
|
+
<fo:block xsl:use-attribute-sets="pre-style">
|
10222
|
+
<xsl:copy-of select="@id"/>
|
10223
|
+
<xsl:apply-templates/>
|
10224
|
+
</fo:block>
|
10225
|
+
</xsl:template>
|
10226
|
+
<!-- =============== -->
|
10227
|
+
<!-- pre -->
|
10228
|
+
<!-- =============== -->
|
9989
10229
|
|
9990
10230
|
<!-- ========== -->
|
9991
10231
|
<!-- permission -->
|
@@ -11495,7 +11735,7 @@
|
|
11495
11735
|
<xsl:apply-templates select="*[local-name() = 'note']"/>
|
11496
11736
|
|
11497
11737
|
<xsl:if test="normalize-space($docidentifier) != '' and *[local-name() = 'formattedref']">
|
11498
|
-
|
11738
|
+
<xsl:text>,</xsl:text>
|
11499
11739
|
<xsl:text> </xsl:text>
|
11500
11740
|
</xsl:if>
|
11501
11741
|
|
@@ -12016,7 +12256,9 @@
|
|
12016
12256
|
<!-- ===================================== -->
|
12017
12257
|
<!-- Update xml -->
|
12018
12258
|
<!-- ===================================== -->
|
12259
|
+
<!-- =========================================================================== -->
|
12019
12260
|
<!-- STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
|
12261
|
+
<!-- =========================================================================== -->
|
12020
12262
|
<xsl:template match="@*|node()" mode="update_xml_step1">
|
12021
12263
|
<xsl:copy>
|
12022
12264
|
<xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
|
@@ -12108,10 +12350,13 @@
|
|
12108
12350
|
<xsl:template match="*[local-name() = 'span']" mode="update_xml_step1">
|
12109
12351
|
<xsl:apply-templates mode="update_xml_step1"/>
|
12110
12352
|
</xsl:template>
|
12111
|
-
|
12353
|
+
<!-- =========================================================================== -->
|
12112
12354
|
<!-- END STEP1: Re-order elements in 'preface', 'sections' based on @displayorder -->
|
12355
|
+
<!-- =========================================================================== -->
|
12113
12356
|
|
12357
|
+
<!-- =========================================================================== -->
|
12114
12358
|
<!-- STEP2: add 'fn' after 'eref' and 'origin', if referenced to bibitem with 'note' = Withdrawn.' or 'Cancelled and replaced...' -->
|
12359
|
+
<!-- =========================================================================== -->
|
12115
12360
|
<xsl:template match="@*|node()" mode="update_xml_step2">
|
12116
12361
|
<xsl:copy>
|
12117
12362
|
<xsl:apply-templates select="@*|node()" mode="update_xml_step2"/>
|
@@ -12190,8 +12435,6 @@
|
|
12190
12435
|
</xsl:copy>
|
12191
12436
|
</xsl:template>
|
12192
12437
|
|
12193
|
-
<!-- END STEP2: add 'fn' after 'eref' and 'origin', if referenced to bibitem with 'note' = Withdrawn.' or 'Cancelled and replaced...' -->
|
12194
|
-
|
12195
12438
|
<!-- enclose sequence of 'char x' + 'combining char y' to <lang_none>xy</lang_none> -->
|
12196
12439
|
<xsl:variable name="regex_combining_chars">(.[̀-ͯ])</xsl:variable>
|
12197
12440
|
<xsl:variable name="element_name_lang_none">lang_none</xsl:variable>
|
@@ -12207,7 +12450,15 @@
|
|
12207
12450
|
</xsl:call-template>
|
12208
12451
|
</xsl:template>
|
12209
12452
|
|
12453
|
+
<!-- =========================================================================== -->
|
12454
|
+
<!-- END STEP2: add 'fn' after 'eref' and 'origin', if referenced to bibitem with 'note' = Withdrawn.' or 'Cancelled and replaced...' -->
|
12455
|
+
<!-- =========================================================================== -->
|
12456
|
+
|
12457
|
+
<!-- =========================================================================== -->
|
12210
12458
|
<!-- XML UPDATE STEP: enclose standard's name into tag 'keep-together_within-line' -->
|
12459
|
+
<!-- keep-together_within-line for: a/b, aaa/b, a/bbb, /b -->
|
12460
|
+
<!-- keep-together_within-line for: a.b, aaa.b, a.bbb, .b in table's cell ONLY -->
|
12461
|
+
<!-- =========================================================================== -->
|
12211
12462
|
<!-- Example: <keep-together_within-line>ISO 10303-51</keep-together_within-line> -->
|
12212
12463
|
<xsl:template match="@*|node()" mode="update_xml_enclose_keep-together_within-line">
|
12213
12464
|
<xsl:copy>
|
@@ -12223,10 +12474,15 @@
|
|
12223
12474
|
<xsl:template match="text()[not(ancestor::*[local-name() = 'bibdata'] or ancestor::*[local-name() = 'link'][not(contains(.,' '))] or ancestor::*[local-name() = 'sourcecode'] or ancestor::*[local-name() = 'math'] or starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.') )]" name="keep_together_standard_number" mode="update_xml_enclose_keep-together_within-line">
|
12224
12475
|
|
12225
12476
|
<!-- enclose standard's number into tag 'keep-together_within-line' -->
|
12226
|
-
<xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
|
12227
12477
|
<xsl:variable name="tag_keep-together_within-line_open">###<xsl:value-of select="$element_name_keep-together_within-line"/>###</xsl:variable>
|
12228
12478
|
<xsl:variable name="tag_keep-together_within-line_close">###/<xsl:value-of select="$element_name_keep-together_within-line"/>###</xsl:variable>
|
12229
|
-
<xsl:variable name="
|
12479
|
+
<xsl:variable name="text__" select="java:replaceAll(java:java.lang.String.new(.), $regex_standard_reference, concat($tag_keep-together_within-line_open,'$1',$tag_keep-together_within-line_close))"/>
|
12480
|
+
<xsl:variable name="text_">
|
12481
|
+
<xsl:choose>
|
12482
|
+
<xsl:when test="ancestor::*[local-name() = 'table']"><xsl:value-of select="."/></xsl:when> <!-- no need enclose standard's number into tag 'keep-together_within-line' in table cells -->
|
12483
|
+
<xsl:otherwise><xsl:value-of select="$text__"/></xsl:otherwise>
|
12484
|
+
</xsl:choose>
|
12485
|
+
</xsl:variable>
|
12230
12486
|
<xsl:variable name="text"><text><xsl:call-template name="replace_text_tags">
|
12231
12487
|
<xsl:with-param name="tag_open" select="$tag_keep-together_within-line_open"/>
|
12232
12488
|
<xsl:with-param name="tag_close" select="$tag_keep-together_within-line_close"/>
|
@@ -12242,7 +12498,11 @@
|
|
12242
12498
|
</xsl:variable>
|
12243
12499
|
|
12244
12500
|
<!-- keep-together_within-line for: a/b, aaa/b, a/bbb, /b -->
|
12245
|
-
|
12501
|
+
<!-- \S matches any non-whitespace character (equivalent to [^\r\n\t\f\v ]) -->
|
12502
|
+
<!-- <xsl:variable name="regex_solidus_units">((\b((\S{1,3}\/\S+)|(\S+\/\S{1,3}))\b)|(\/\S{1,3})\b)</xsl:variable> -->
|
12503
|
+
<!-- add < and > to \S -->
|
12504
|
+
<xsl:variable name="regex_S">[^\r\n\t\f\v \<>]</xsl:variable>
|
12505
|
+
<xsl:variable name="regex_solidus_units">((\b((<xsl:value-of select="$regex_S"/>{1,3}\/<xsl:value-of select="$regex_S"/>+)|(<xsl:value-of select="$regex_S"/>+\/<xsl:value-of select="$regex_S"/>{1,3}))\b)|(\/<xsl:value-of select="$regex_S"/>{1,3})\b)</xsl:variable>
|
12246
12506
|
<xsl:variable name="text3">
|
12247
12507
|
<text><xsl:for-each select="xalan:nodeset($text2)/text/node()">
|
12248
12508
|
<xsl:choose>
|
@@ -12306,9 +12566,8 @@
|
|
12306
12566
|
<xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise>
|
12307
12567
|
</xsl:choose>
|
12308
12568
|
</xsl:template>
|
12309
|
-
|
12310
12569
|
<!-- ===================================== -->
|
12311
|
-
<!--
|
12570
|
+
<!-- END XML UPDATE STEP: enclose standard's name into tag 'keep-together_within-line' -->
|
12312
12571
|
<!-- ===================================== -->
|
12313
12572
|
|
12314
12573
|
<!-- for correct rendering combining chars -->
|
@@ -12694,13 +12953,14 @@
|
|
12694
12953
|
</xsl:template>
|
12695
12954
|
|
12696
12955
|
<xsl:template name="setId">
|
12956
|
+
<xsl:param name="prefix"/>
|
12697
12957
|
<xsl:attribute name="id">
|
12698
12958
|
<xsl:choose>
|
12699
12959
|
<xsl:when test="@id">
|
12700
|
-
<xsl:value-of select="@id"/>
|
12960
|
+
<xsl:value-of select="concat($prefix, @id)"/>
|
12701
12961
|
</xsl:when>
|
12702
12962
|
<xsl:otherwise>
|
12703
|
-
<xsl:value-of select="generate-id()"/>
|
12963
|
+
<xsl:value-of select="concat($prefix, generate-id())"/>
|
12704
12964
|
</xsl:otherwise>
|
12705
12965
|
</xsl:choose>
|
12706
12966
|
</xsl:attribute>
|