metanorma-mpfa 0.5.3 → 0.5.4

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: ae4dfa96623980717b0d0aa5cab95bb85b8e2783cc3f2f7d150bfbd935fc9f34
4
- data.tar.gz: 8821d201deb2309b37fa71a1dd11201fe40e4341302750209d22cd1972f6f081
3
+ metadata.gz: 8dcb7661da4f2fcbfb39f502092f2bf7ebb0600931d4af01b4afc47f6ba07cda
4
+ data.tar.gz: cc08933866ff4413dbe87680e7663eb68a17d31c9ae9c334d285a0255de738d9
5
5
  SHA512:
6
- metadata.gz: 360c28eb4430f1decbf67e28afa792958ae2bb191757efc1e11259e64000e86d926c35c082313357c65d120e27d2ac3e1c2224b522b9275c5572310e3b39aec3
7
- data.tar.gz: 2d6839910d73e8da3b1b7549cc4baffbddb347695acff7619f361f4c4660848bfa3389d4c23da945ac6567097130bcba959752db0b1570cdd0dfd867bbaa4148
6
+ metadata.gz: e4dae79748378fc5be7e487e49bd398b3a0cf6fed4ffb8f1942adfb904c3e95ba8b73224fe66eb1505a753ab56b46c1fd00deafe20ec137e9b29f43be907e465
7
+ data.tar.gz: 99c560df54d0530e2a11f3ef9a2156aea1a1d10e06abd7183e174b40cc845b67cd4bb55c7835cc364328b83b211bafa7cf5eb0ca670fdc7bc297c7b6593ef488
@@ -158,17 +158,7 @@
158
158
  <data type="ID"/>
159
159
  </attribute>
160
160
  <oneOrMore>
161
- <choice>
162
- <ref name="formula"/>
163
- <ref name="ul"/>
164
- <ref name="ol"/>
165
- <ref name="dl"/>
166
- <ref name="quote"/>
167
- <ref name="sourcecode"/>
168
- <ref name="paragraph"/>
169
- <ref name="table"/>
170
- <ref name="figure"/>
171
- </choice>
161
+ <ref name="paragraph"/>
172
162
  </oneOrMore>
173
163
  </element>
174
164
  </define>
@@ -1028,6 +1018,9 @@
1028
1018
  <value>alphabet_upper</value>
1029
1019
  </choice>
1030
1020
  </attribute>
1021
+ <optional>
1022
+ <attribute name="start"/>
1023
+ </optional>
1031
1024
  <oneOrMore>
1032
1025
  <ref name="li"/>
1033
1026
  </oneOrMore>
@@ -64,6 +64,11 @@
64
64
  </choice>
65
65
  </attribute>
66
66
  </optional>
67
+ <optional>
68
+ <attribute name="droploc">
69
+ <data type="boolean"/>
70
+ </attribute>
71
+ </optional>
67
72
  <text/>
68
73
  </element>
69
74
  </define>
@@ -859,6 +864,13 @@
859
864
  </define>
860
865
  <define name="standard-document">
861
866
  <element name="standard-document">
867
+ <attribute name="version"/>
868
+ <attribute name="type">
869
+ <choice>
870
+ <value>semantic</value>
871
+ <value>presentation</value>
872
+ </choice>
873
+ </attribute>
862
874
  <ref name="bibdata"/>
863
875
  <optional>
864
876
  <ref name="boilerplate"/>
@@ -880,7 +892,7 @@
880
892
  <oneOrMore>
881
893
  <choice>
882
894
  <ref name="content"/>
883
- <ref name="preface_abstract"/>
895
+ <ref name="abstract"/>
884
896
  <ref name="foreword"/>
885
897
  <ref name="introduction"/>
886
898
  <ref name="acknowledgements"/>
@@ -1481,11 +1493,6 @@
1481
1493
  </optional>
1482
1494
  </element>
1483
1495
  </define>
1484
- <define name="preface_abstract">
1485
- <element name="abstract">
1486
- <ref name="Basic-Section"/>
1487
- </element>
1488
- </define>
1489
1496
  <define name="term-clause">
1490
1497
  <element name="clause">
1491
1498
  <optional>
@@ -59,6 +59,13 @@
59
59
  </define>
60
60
  <define name="mpfd-standard">
61
61
  <element name="mpfd-standard">
62
+ <attribute name="version"/>
63
+ <attribute name="type">
64
+ <choice>
65
+ <value>semantic</value>
66
+ <value>presentation</value>
67
+ </choice>
68
+ </attribute>
62
69
  <ref name="bibdata"/>
63
70
  <zeroOrMore>
64
71
  <ref name="termdocsource"/>
@@ -96,6 +96,10 @@
96
96
 
97
97
  <xsl:call-template name="addPDFUAmeta"/>
98
98
 
99
+ <xsl:call-template name="addBookmarks">
100
+ <xsl:with-param name="contents" select="$contents"/>
101
+ </xsl:call-template>
102
+
99
103
  <fo:page-sequence master-reference="cover" force-page-count="no-force">
100
104
  <fo:static-content flow-name="cover-header">
101
105
  <fo:block-container height="100%">
@@ -171,7 +175,7 @@
171
175
  </xsl:variable>
172
176
  <fo:block font-size="14pt" margin-bottom="15.5pt"><xsl:value-of select="$title-toc"/></fo:block>
173
177
  <fo:block line-height="115%">
174
- <xsl:for-each select="xalan:nodeset($contents)//item">
178
+ <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']">
175
179
  <fo:block>
176
180
  <xsl:if test="@level = 1">
177
181
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
@@ -193,8 +197,8 @@
193
197
  </fo:list-item-label>
194
198
  <fo:list-item-body start-indent="body-start()">
195
199
  <fo:block text-align-last="justify">
196
- <fo:basic-link internal-destination="{@id}" fox:alt-text="text()">
197
- <xsl:apply-templates/>
200
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
201
+ <xsl:apply-templates select="title"/>
198
202
  <fo:inline keep-together.within-line="always">
199
203
  <fo:leader leader-pattern="dots"/>
200
204
  <fo:page-number-citation ref-id="{@id}"/>
@@ -274,25 +278,34 @@
274
278
  </xsl:variable>
275
279
 
276
280
  <xsl:variable name="display">
277
- <xsl:choose>
278
- <xsl:when test="ancestor-or-self::mpfd:bibitem">false</xsl:when>
279
- <xsl:when test="ancestor-or-self::mpfd:term">false</xsl:when>
281
+ <xsl:choose>
280
282
  <xsl:when test="$level &gt;= 3">false</xsl:when>
281
283
  <xsl:otherwise>true</xsl:otherwise>
282
284
  </xsl:choose>
283
285
  </xsl:variable>
284
286
 
285
- <xsl:if test="$display = 'true'">
287
+ <xsl:variable name="skip">
288
+ <xsl:choose>
289
+ <xsl:when test="ancestor-or-self::mpfd:bibitem">true</xsl:when>
290
+ <xsl:when test="ancestor-or-self::mpfd:term">true</xsl:when>
291
+ <xsl:otherwise>false</xsl:otherwise>
292
+ </xsl:choose>
293
+ </xsl:variable>
294
+
295
+ <xsl:if test="$skip = 'false'">
286
296
 
287
297
  <xsl:variable name="title">
288
298
  <xsl:call-template name="getName"/>
289
299
  </xsl:variable>
290
300
 
291
- <item level="{$level}" section="{$section}" type="{$type}">
301
+ <item level="{$level}" section="{$section}" type="{$type}" display="{$display}">
292
302
  <xsl:call-template name="setId"/>
293
- <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
303
+ <title>
304
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
305
+ </title>
306
+ <xsl:apply-templates mode="contents"/>
294
307
  </item>
295
- <xsl:apply-templates mode="contents"/>
308
+
296
309
  </xsl:if>
297
310
 
298
311
  </xsl:template>
@@ -783,6 +796,12 @@
783
796
 
784
797
  </title-edition>
785
798
 
799
+ <title-edition lang="fr">
800
+
801
+ <xsl:text>Édition </xsl:text>
802
+
803
+ </title-edition>
804
+
786
805
 
787
806
  <title-toc lang="en">
788
807
 
@@ -889,7 +908,9 @@
889
908
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
890
909
  </xsl:otherwise>
891
910
  </xsl:choose>
892
- </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="link-style">
911
+ </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">
912
+
913
+ </xsl:attribute-set><xsl:attribute-set name="link-style">
893
914
 
894
915
  <xsl:attribute name="color">blue</xsl:attribute>
895
916
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
@@ -2782,12 +2803,101 @@
2782
2803
 
2783
2804
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
2784
2805
  </fo:block>
2785
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
2806
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
2786
2807
  <xsl:apply-templates mode="contents"/>
2787
2808
  <xsl:text> </xsl:text>
2788
- </xsl:template><xsl:template match="text()" mode="contents">
2809
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="bookmarks">
2810
+ <xsl:apply-templates mode="bookmarks"/>
2811
+ <xsl:text> </xsl:text>
2812
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="contents" priority="2">
2789
2813
  <xsl:value-of select="."/>
2790
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
2814
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
2815
+ <xsl:value-of select="."/>
2816
+ </xsl:template><xsl:template match="node()" mode="contents">
2817
+ <xsl:apply-templates mode="contents"/>
2818
+ </xsl:template><xsl:template match="node()" mode="bookmarks">
2819
+ <xsl:apply-templates mode="bookmarks"/>
2820
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
2821
+ <xsl:apply-templates select="."/>
2822
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
2823
+ <xsl:apply-templates mode="bookmarks"/>
2824
+ </xsl:template><xsl:template name="addBookmarks">
2825
+ <xsl:param name="contents"/>
2826
+ <xsl:if test="xalan:nodeset($contents)//item">
2827
+ <fo:bookmark-tree>
2828
+ <xsl:choose>
2829
+ <xsl:when test="xalan:nodeset($contents)/doc">
2830
+ <xsl:choose>
2831
+ <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
2832
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
2833
+ <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
2834
+ <fo:bookmark-title>
2835
+ <xsl:variable name="bookmark-title_">
2836
+ <xsl:choose>
2837
+ <xsl:when test="@lang = 'en'">
2838
+
2839
+
2840
+ </xsl:when>
2841
+ <xsl:when test="@lang = 'fr'">
2842
+
2843
+
2844
+ </xsl:when>
2845
+ <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
2846
+ <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
2847
+ </xsl:choose>
2848
+ </xsl:variable>
2849
+ <xsl:choose>
2850
+ <xsl:when test="normalize-space($bookmark-title_) != ''">
2851
+ <xsl:value-of select="normalize-space($bookmark-title_)"/>
2852
+ </xsl:when>
2853
+ <xsl:otherwise>
2854
+ <xsl:choose>
2855
+ <xsl:when test="@lang = 'en'">English</xsl:when>
2856
+ <xsl:when test="@lang = 'fr'">Français</xsl:when>
2857
+ <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
2858
+ <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
2859
+ </xsl:choose>
2860
+ </xsl:otherwise>
2861
+ </xsl:choose>
2862
+ </fo:bookmark-title>
2863
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
2864
+ </fo:bookmark>
2865
+
2866
+ </xsl:for-each>
2867
+ </xsl:when>
2868
+ <xsl:otherwise>
2869
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
2870
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
2871
+ </xsl:for-each>
2872
+ </xsl:otherwise>
2873
+ </xsl:choose>
2874
+ </xsl:when>
2875
+ <xsl:otherwise>
2876
+ <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
2877
+ </xsl:otherwise>
2878
+ </xsl:choose>
2879
+
2880
+
2881
+
2882
+
2883
+
2884
+
2885
+
2886
+
2887
+ </fo:bookmark-tree>
2888
+ </xsl:if>
2889
+ </xsl:template><xsl:template match="item" mode="bookmark">
2890
+ <fo:bookmark internal-destination="{@id}" starting-state="hide">
2891
+ <fo:bookmark-title>
2892
+ <xsl:if test="@section != ''">
2893
+ <xsl:value-of select="@section"/>
2894
+ <xsl:text> </xsl:text>
2895
+ </xsl:if>
2896
+ <xsl:value-of select="normalize-space(title)"/>
2897
+ </fo:bookmark-title>
2898
+ <xsl:apply-templates mode="bookmark"/>
2899
+ </fo:bookmark>
2900
+ </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
2791
2901
  <xsl:if test="normalize-space() != ''">
2792
2902
  <fo:block xsl:use-attribute-sets="figure-name-style">
2793
2903
 
@@ -2845,7 +2955,7 @@
2845
2955
  <xsl:apply-templates/>
2846
2956
  </xsl:otherwise>
2847
2957
  </xsl:choose>
2848
- </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
2958
+ </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="bookmarks"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
2849
2959
  <xsl:text> </xsl:text>
2850
2960
  </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
2851
2961
  <xsl:copy>
@@ -3441,20 +3551,29 @@
3441
3551
  <!-- 0xA0 to space replacement -->
3442
3552
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
3443
3553
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
3444
- <fo:block-container margin-left="0mm">
3445
- <xsl:if test="parent::*[local-name() = 'note']">
3446
- <xsl:attribute name="margin-left">
3447
- <xsl:choose>
3448
- <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3449
- <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3450
- </xsl:choose>
3451
- </xsl:attribute>
3452
-
3453
- </xsl:if>
3454
- <fo:block-container margin-left="0mm">
3455
- <xsl:apply-templates select="." mode="ul_ol"/>
3456
- </fo:block-container>
3457
- </fo:block-container>
3554
+ <xsl:choose>
3555
+ <xsl:when test="parent::*[local-name() = 'note']">
3556
+ <fo:block-container>
3557
+ <xsl:attribute name="margin-left">
3558
+ <xsl:choose>
3559
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3560
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3561
+ </xsl:choose>
3562
+ </xsl:attribute>
3563
+
3564
+ <fo:block-container margin-left="0mm">
3565
+ <fo:block>
3566
+ <xsl:apply-templates select="." mode="ul_ol"/>
3567
+ </fo:block>
3568
+ </fo:block-container>
3569
+ </fo:block-container>
3570
+ </xsl:when>
3571
+ <xsl:otherwise>
3572
+ <fo:block>
3573
+ <xsl:apply-templates select="." mode="ul_ol"/>
3574
+ </fo:block>
3575
+ </xsl:otherwise>
3576
+ </xsl:choose>
3458
3577
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
3459
3578
  <!-- <row>
3460
3579
  <date>05-07-2013</date>
@@ -3748,6 +3867,7 @@
3748
3867
 
3749
3868
  <xsl:value-of select="document('')//*/namespace::mpfd"/>
3750
3869
 
3870
+
3751
3871
  </xsl:variable>
3752
3872
  <xsl:if test="$documentNS != $XSLNS">
3753
3873
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -3773,4 +3893,21 @@
3773
3893
  </xsl:otherwise>
3774
3894
  </xsl:choose>
3775
3895
  </xsl:attribute>
3896
+ </xsl:template><xsl:template name="add-letter-spacing">
3897
+ <xsl:param name="text"/>
3898
+ <xsl:param name="letter-spacing" select="'0.15'"/>
3899
+ <xsl:if test="string-length($text) &gt; 0">
3900
+ <xsl:variable name="char" select="substring($text, 1, 1)"/>
3901
+ <fo:inline padding-right="{$letter-spacing}mm">
3902
+ <xsl:if test="$char = '®'">
3903
+ <xsl:attribute name="font-size">58%</xsl:attribute>
3904
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
3905
+ </xsl:if>
3906
+ <xsl:value-of select="$char"/>
3907
+ </fo:inline>
3908
+ <xsl:call-template name="add-letter-spacing">
3909
+ <xsl:with-param name="text" select="substring($text, 2)"/>
3910
+ <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
3911
+ </xsl:call-template>
3912
+ </xsl:if>
3776
3913
  </xsl:template></xsl:stylesheet>
@@ -96,6 +96,10 @@
96
96
 
97
97
  <xsl:call-template name="addPDFUAmeta"/>
98
98
 
99
+ <xsl:call-template name="addBookmarks">
100
+ <xsl:with-param name="contents" select="$contents"/>
101
+ </xsl:call-template>
102
+
99
103
  <fo:page-sequence master-reference="cover" force-page-count="no-force">
100
104
  <fo:static-content flow-name="cover-header">
101
105
  <fo:block-container height="100%">
@@ -171,7 +175,7 @@
171
175
  </xsl:variable>
172
176
  <fo:block font-size="14pt" margin-bottom="15.5pt"><xsl:value-of select="$title-toc"/></fo:block>
173
177
  <fo:block line-height="115%">
174
- <xsl:for-each select="xalan:nodeset($contents)//item">
178
+ <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']">
175
179
  <fo:block>
176
180
  <xsl:if test="@level = 1">
177
181
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
@@ -193,8 +197,8 @@
193
197
  </fo:list-item-label>
194
198
  <fo:list-item-body start-indent="body-start()">
195
199
  <fo:block text-align-last="justify">
196
- <fo:basic-link internal-destination="{@id}" fox:alt-text="text()">
197
- <xsl:apply-templates/>
200
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
201
+ <xsl:apply-templates select="title"/>
198
202
  <fo:inline keep-together.within-line="always">
199
203
  <fo:leader leader-pattern="dots"/>
200
204
  <fo:page-number-citation ref-id="{@id}"/>
@@ -274,25 +278,34 @@
274
278
  </xsl:variable>
275
279
 
276
280
  <xsl:variable name="display">
277
- <xsl:choose>
278
- <xsl:when test="ancestor-or-self::mpfd:bibitem">false</xsl:when>
279
- <xsl:when test="ancestor-or-self::mpfd:term">false</xsl:when>
281
+ <xsl:choose>
280
282
  <xsl:when test="$level &gt;= 3">false</xsl:when>
281
283
  <xsl:otherwise>true</xsl:otherwise>
282
284
  </xsl:choose>
283
285
  </xsl:variable>
284
286
 
285
- <xsl:if test="$display = 'true'">
287
+ <xsl:variable name="skip">
288
+ <xsl:choose>
289
+ <xsl:when test="ancestor-or-self::mpfd:bibitem">true</xsl:when>
290
+ <xsl:when test="ancestor-or-self::mpfd:term">true</xsl:when>
291
+ <xsl:otherwise>false</xsl:otherwise>
292
+ </xsl:choose>
293
+ </xsl:variable>
294
+
295
+ <xsl:if test="$skip = 'false'">
286
296
 
287
297
  <xsl:variable name="title">
288
298
  <xsl:call-template name="getName"/>
289
299
  </xsl:variable>
290
300
 
291
- <item level="{$level}" section="{$section}" type="{$type}">
301
+ <item level="{$level}" section="{$section}" type="{$type}" display="{$display}">
292
302
  <xsl:call-template name="setId"/>
293
- <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
303
+ <title>
304
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
305
+ </title>
306
+ <xsl:apply-templates mode="contents"/>
294
307
  </item>
295
- <xsl:apply-templates mode="contents"/>
308
+
296
309
  </xsl:if>
297
310
 
298
311
  </xsl:template>
@@ -783,6 +796,12 @@
783
796
 
784
797
  </title-edition>
785
798
 
799
+ <title-edition lang="fr">
800
+
801
+ <xsl:text>Édition </xsl:text>
802
+
803
+ </title-edition>
804
+
786
805
 
787
806
  <title-toc lang="en">
788
807
 
@@ -889,7 +908,9 @@
889
908
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
890
909
  </xsl:otherwise>
891
910
  </xsl:choose>
892
- </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="link-style">
911
+ </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">
912
+
913
+ </xsl:attribute-set><xsl:attribute-set name="link-style">
893
914
 
894
915
  <xsl:attribute name="color">blue</xsl:attribute>
895
916
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
@@ -2782,12 +2803,101 @@
2782
2803
 
2783
2804
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
2784
2805
  </fo:block>
2785
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
2806
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
2786
2807
  <xsl:apply-templates mode="contents"/>
2787
2808
  <xsl:text> </xsl:text>
2788
- </xsl:template><xsl:template match="text()" mode="contents">
2809
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="bookmarks">
2810
+ <xsl:apply-templates mode="bookmarks"/>
2811
+ <xsl:text> </xsl:text>
2812
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="contents" priority="2">
2789
2813
  <xsl:value-of select="."/>
2790
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
2814
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
2815
+ <xsl:value-of select="."/>
2816
+ </xsl:template><xsl:template match="node()" mode="contents">
2817
+ <xsl:apply-templates mode="contents"/>
2818
+ </xsl:template><xsl:template match="node()" mode="bookmarks">
2819
+ <xsl:apply-templates mode="bookmarks"/>
2820
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
2821
+ <xsl:apply-templates select="."/>
2822
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
2823
+ <xsl:apply-templates mode="bookmarks"/>
2824
+ </xsl:template><xsl:template name="addBookmarks">
2825
+ <xsl:param name="contents"/>
2826
+ <xsl:if test="xalan:nodeset($contents)//item">
2827
+ <fo:bookmark-tree>
2828
+ <xsl:choose>
2829
+ <xsl:when test="xalan:nodeset($contents)/doc">
2830
+ <xsl:choose>
2831
+ <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
2832
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
2833
+ <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
2834
+ <fo:bookmark-title>
2835
+ <xsl:variable name="bookmark-title_">
2836
+ <xsl:choose>
2837
+ <xsl:when test="@lang = 'en'">
2838
+
2839
+
2840
+ </xsl:when>
2841
+ <xsl:when test="@lang = 'fr'">
2842
+
2843
+
2844
+ </xsl:when>
2845
+ <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
2846
+ <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
2847
+ </xsl:choose>
2848
+ </xsl:variable>
2849
+ <xsl:choose>
2850
+ <xsl:when test="normalize-space($bookmark-title_) != ''">
2851
+ <xsl:value-of select="normalize-space($bookmark-title_)"/>
2852
+ </xsl:when>
2853
+ <xsl:otherwise>
2854
+ <xsl:choose>
2855
+ <xsl:when test="@lang = 'en'">English</xsl:when>
2856
+ <xsl:when test="@lang = 'fr'">Français</xsl:when>
2857
+ <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
2858
+ <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
2859
+ </xsl:choose>
2860
+ </xsl:otherwise>
2861
+ </xsl:choose>
2862
+ </fo:bookmark-title>
2863
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
2864
+ </fo:bookmark>
2865
+
2866
+ </xsl:for-each>
2867
+ </xsl:when>
2868
+ <xsl:otherwise>
2869
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
2870
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
2871
+ </xsl:for-each>
2872
+ </xsl:otherwise>
2873
+ </xsl:choose>
2874
+ </xsl:when>
2875
+ <xsl:otherwise>
2876
+ <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
2877
+ </xsl:otherwise>
2878
+ </xsl:choose>
2879
+
2880
+
2881
+
2882
+
2883
+
2884
+
2885
+
2886
+
2887
+ </fo:bookmark-tree>
2888
+ </xsl:if>
2889
+ </xsl:template><xsl:template match="item" mode="bookmark">
2890
+ <fo:bookmark internal-destination="{@id}" starting-state="hide">
2891
+ <fo:bookmark-title>
2892
+ <xsl:if test="@section != ''">
2893
+ <xsl:value-of select="@section"/>
2894
+ <xsl:text> </xsl:text>
2895
+ </xsl:if>
2896
+ <xsl:value-of select="normalize-space(title)"/>
2897
+ </fo:bookmark-title>
2898
+ <xsl:apply-templates mode="bookmark"/>
2899
+ </fo:bookmark>
2900
+ </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
2791
2901
  <xsl:if test="normalize-space() != ''">
2792
2902
  <fo:block xsl:use-attribute-sets="figure-name-style">
2793
2903
 
@@ -2845,7 +2955,7 @@
2845
2955
  <xsl:apply-templates/>
2846
2956
  </xsl:otherwise>
2847
2957
  </xsl:choose>
2848
- </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
2958
+ </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="bookmarks"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
2849
2959
  <xsl:text> </xsl:text>
2850
2960
  </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
2851
2961
  <xsl:copy>
@@ -3441,20 +3551,29 @@
3441
3551
  <!-- 0xA0 to space replacement -->
3442
3552
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
3443
3553
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
3444
- <fo:block-container margin-left="0mm">
3445
- <xsl:if test="parent::*[local-name() = 'note']">
3446
- <xsl:attribute name="margin-left">
3447
- <xsl:choose>
3448
- <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3449
- <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3450
- </xsl:choose>
3451
- </xsl:attribute>
3452
-
3453
- </xsl:if>
3454
- <fo:block-container margin-left="0mm">
3455
- <xsl:apply-templates select="." mode="ul_ol"/>
3456
- </fo:block-container>
3457
- </fo:block-container>
3554
+ <xsl:choose>
3555
+ <xsl:when test="parent::*[local-name() = 'note']">
3556
+ <fo:block-container>
3557
+ <xsl:attribute name="margin-left">
3558
+ <xsl:choose>
3559
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3560
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3561
+ </xsl:choose>
3562
+ </xsl:attribute>
3563
+
3564
+ <fo:block-container margin-left="0mm">
3565
+ <fo:block>
3566
+ <xsl:apply-templates select="." mode="ul_ol"/>
3567
+ </fo:block>
3568
+ </fo:block-container>
3569
+ </fo:block-container>
3570
+ </xsl:when>
3571
+ <xsl:otherwise>
3572
+ <fo:block>
3573
+ <xsl:apply-templates select="." mode="ul_ol"/>
3574
+ </fo:block>
3575
+ </xsl:otherwise>
3576
+ </xsl:choose>
3458
3577
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
3459
3578
  <!-- <row>
3460
3579
  <date>05-07-2013</date>
@@ -3748,6 +3867,7 @@
3748
3867
 
3749
3868
  <xsl:value-of select="document('')//*/namespace::mpfd"/>
3750
3869
 
3870
+
3751
3871
  </xsl:variable>
3752
3872
  <xsl:if test="$documentNS != $XSLNS">
3753
3873
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -3773,4 +3893,21 @@
3773
3893
  </xsl:otherwise>
3774
3894
  </xsl:choose>
3775
3895
  </xsl:attribute>
3896
+ </xsl:template><xsl:template name="add-letter-spacing">
3897
+ <xsl:param name="text"/>
3898
+ <xsl:param name="letter-spacing" select="'0.15'"/>
3899
+ <xsl:if test="string-length($text) &gt; 0">
3900
+ <xsl:variable name="char" select="substring($text, 1, 1)"/>
3901
+ <fo:inline padding-right="{$letter-spacing}mm">
3902
+ <xsl:if test="$char = '®'">
3903
+ <xsl:attribute name="font-size">58%</xsl:attribute>
3904
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
3905
+ </xsl:if>
3906
+ <xsl:value-of select="$char"/>
3907
+ </fo:inline>
3908
+ <xsl:call-template name="add-letter-spacing">
3909
+ <xsl:with-param name="text" select="substring($text, 2)"/>
3910
+ <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
3911
+ </xsl:call-template>
3912
+ </xsl:if>
3776
3913
  </xsl:template></xsl:stylesheet>