metanorma-un 0.6.5 → 0.6.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +1 -1
- data/lib/asciidoctor/un/isodoc.rng +18 -1
- data/lib/isodoc/un/un.plenary-attachment.xsl +300 -40
- data/lib/isodoc/un/un.plenary.xsl +300 -40
- data/lib/isodoc/un/un.recommendation.xsl +300 -40
- data/lib/metanorma/un/version.rb +1 -1
- data/metanorma-unece.gemspec +2 -2
- metadata +6 -6
@@ -11,8 +11,12 @@
|
|
11
11
|
|
12
12
|
|
13
13
|
|
14
|
-
<xsl:variable name="pageWidth" select="
|
15
|
-
<xsl:variable name="pageHeight" select="
|
14
|
+
<xsl:variable name="pageWidth" select="210"/>
|
15
|
+
<xsl:variable name="pageHeight" select="297"/>
|
16
|
+
<xsl:variable name="marginLeftRight1" select="40"/>
|
17
|
+
<xsl:variable name="marginLeftRight2" select="40"/>
|
18
|
+
<xsl:variable name="marginTop" select="30"/>
|
19
|
+
<xsl:variable name="marginBottom" select="40"/>
|
16
20
|
|
17
21
|
<xsl:variable name="debug">false</xsl:variable>
|
18
22
|
|
@@ -42,7 +46,7 @@
|
|
42
46
|
<fo:root font-family="Times New Roman, STIX Two Math, Source Han Sans" font-size="10pt" xml:lang="{$lang}">
|
43
47
|
<fo:layout-master-set>
|
44
48
|
<!-- Cover page -->
|
45
|
-
<fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
49
|
+
<fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
46
50
|
<fo:region-body margin-top="17.5mm" margin-bottom="10mm" margin-left="20mm" margin-right="20mm"/>
|
47
51
|
<fo:region-before extent="17.5mm"/>
|
48
52
|
<fo:region-after extent="10mm"/>
|
@@ -51,20 +55,20 @@
|
|
51
55
|
</fo:simple-page-master>
|
52
56
|
|
53
57
|
<!-- Document odd pages -->
|
54
|
-
<fo:simple-page-master master-name="odd" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
55
|
-
<fo:region-body margin-top="
|
58
|
+
<fo:simple-page-master master-name="odd" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
59
|
+
<fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
|
56
60
|
<fo:region-before region-name="header-odd" extent="26mm"/>
|
57
|
-
<fo:region-after region-name="footer-odd" extent="
|
58
|
-
<fo:region-start region-name="left-region" extent="
|
59
|
-
<fo:region-end region-name="right-region" extent="
|
61
|
+
<fo:region-after region-name="footer-odd" extent="{$marginBottom}mm"/>
|
62
|
+
<fo:region-start region-name="left-region" extent="{$marginLeftRight1}mm"/>
|
63
|
+
<fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
|
60
64
|
</fo:simple-page-master>
|
61
65
|
<!-- Document even pages -->
|
62
|
-
<fo:simple-page-master master-name="even" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
63
|
-
<fo:region-body margin-top="
|
66
|
+
<fo:simple-page-master master-name="even" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
67
|
+
<fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight2}mm" margin-right="{$marginLeftRight1}mm"/>
|
64
68
|
<fo:region-before region-name="header-even" extent="26mm"/>
|
65
|
-
<fo:region-after region-name="footer-even" extent="
|
66
|
-
<fo:region-start region-name="left-region" extent="
|
67
|
-
<fo:region-end region-name="right-region" extent="
|
69
|
+
<fo:region-after region-name="footer-even" extent="{$marginBottom}mm"/>
|
70
|
+
<fo:region-start region-name="left-region" extent="{$marginLeftRight2}mm"/>
|
71
|
+
<fo:region-end region-name="right-region" extent="{$marginLeftRight1}mm"/>
|
68
72
|
</fo:simple-page-master>
|
69
73
|
<fo:page-sequence-master master-name="document">
|
70
74
|
<fo:repeatable-page-master-alternatives>
|
@@ -1516,6 +1520,7 @@
|
|
1516
1520
|
|
1517
1521
|
|
1518
1522
|
|
1523
|
+
|
1519
1524
|
<xsl:attribute name="color">blue</xsl:attribute>
|
1520
1525
|
|
1521
1526
|
|
@@ -1720,14 +1725,15 @@
|
|
1720
1725
|
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
|
1721
1726
|
|
1722
1727
|
<!-- Normative references -->
|
1723
|
-
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/>
|
1728
|
+
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]" mode="contents"/>
|
1724
1729
|
<!-- Terms and definitions -->
|
1725
1730
|
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>
|
1726
1731
|
<!-- Another main sections -->
|
1727
1732
|
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
|
1728
1733
|
<xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
|
1729
1734
|
<!-- Bibliography -->
|
1730
|
-
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/>
|
1735
|
+
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]" mode="contents"/>
|
1736
|
+
|
1731
1737
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
1732
1738
|
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
|
1733
1739
|
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
|
@@ -2515,6 +2521,7 @@
|
|
2515
2521
|
|
2516
2522
|
|
2517
2523
|
|
2524
|
+
|
2518
2525
|
<xsl:attribute name="display-align">before</xsl:attribute>
|
2519
2526
|
<xsl:attribute name="padding-left">0mm</xsl:attribute>
|
2520
2527
|
<xsl:attribute name="padding-top">2mm</xsl:attribute>
|
@@ -2557,6 +2564,7 @@
|
|
2557
2564
|
|
2558
2565
|
|
2559
2566
|
|
2567
|
+
|
2560
2568
|
<fo:inline padding-right="2mm">
|
2561
2569
|
|
2562
2570
|
|
@@ -2610,6 +2618,7 @@
|
|
2610
2618
|
|
2611
2619
|
|
2612
2620
|
|
2621
|
+
|
2613
2622
|
<xsl:value-of select="@reference"/>
|
2614
2623
|
|
2615
2624
|
|
@@ -2754,6 +2763,9 @@
|
|
2754
2763
|
|
2755
2764
|
|
2756
2765
|
|
2766
|
+
|
2767
|
+
|
2768
|
+
|
2757
2769
|
<fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
|
2758
2770
|
|
2759
2771
|
|
@@ -3653,6 +3665,7 @@
|
|
3653
3665
|
<fo:inline xsl:use-attribute-sets="link-style">
|
3654
3666
|
|
3655
3667
|
|
3668
|
+
|
3656
3669
|
<xsl:choose>
|
3657
3670
|
<xsl:when test="$target_text = ''">
|
3658
3671
|
<xsl:apply-templates/>
|
@@ -4014,6 +4027,234 @@
|
|
4014
4027
|
<xsl:param name="height"/>
|
4015
4028
|
<line xmlns="http://www.w3.org/2000/svg" x1="0" y1="0" x2="{$width}" y2="{$height}" style="stroke: rgb(255, 0, 0); stroke-width:4px; "/>
|
4016
4029
|
<line xmlns="http://www.w3.org/2000/svg" x1="0" y1="{$height}" x2="{$width}" y2="0" style="stroke: rgb(255, 0, 0); stroke-width:4px; "/>
|
4030
|
+
</xsl:template><xsl:variable name="figure_name_height">14</xsl:variable><xsl:variable name="width_effective" select="$pageWidth - $marginLeftRight1 - $marginLeftRight2"/><xsl:variable name="height_effective" select="$pageHeight - $marginTop - $marginBottom - $figure_name_height"/><xsl:variable name="image_dpi" select="96"/><xsl:variable name="width_effective_px" select="$width_effective div 25.4 * $image_dpi"/><xsl:variable name="height_effective_px" select="$height_effective div 25.4 * $image_dpi"/><xsl:template match="*[local-name() = 'figure'][not(*[local-name() = 'image']) and *[local-name() = 'svg']]/*[local-name() = 'name']/*[local-name() = 'bookmark']" priority="2"/><xsl:template match="*[local-name() = 'figure'][not(*[local-name() = 'image'])]/*[local-name() = 'svg']" priority="2" name="image_svg">
|
4031
|
+
<xsl:param name="name"/>
|
4032
|
+
|
4033
|
+
<xsl:variable name="svg_content">
|
4034
|
+
<xsl:apply-templates select="." mode="svg_update"/>
|
4035
|
+
</xsl:variable>
|
4036
|
+
|
4037
|
+
<xsl:variable name="alt-text">
|
4038
|
+
<xsl:choose>
|
4039
|
+
<xsl:when test="normalize-space(../*[local-name() = 'name']) != ''">
|
4040
|
+
<xsl:value-of select="../*[local-name() = 'name']"/>
|
4041
|
+
</xsl:when>
|
4042
|
+
<xsl:when test="normalize-space($name) != ''">
|
4043
|
+
<xsl:value-of select="$name"/>
|
4044
|
+
</xsl:when>
|
4045
|
+
<xsl:otherwise>Figure</xsl:otherwise>
|
4046
|
+
</xsl:choose>
|
4047
|
+
</xsl:variable>
|
4048
|
+
|
4049
|
+
<xsl:choose>
|
4050
|
+
<xsl:when test=".//*[local-name() = 'a'][*[local-name() = 'rect'] or *[local-name() = 'polygon'] or *[local-name() = 'circle'] or *[local-name() = 'ellipse']]">
|
4051
|
+
<fo:block>
|
4052
|
+
<xsl:variable name="width" select="@width"/>
|
4053
|
+
<xsl:variable name="height" select="@height"/>
|
4054
|
+
|
4055
|
+
<xsl:variable name="scale_x">
|
4056
|
+
<xsl:choose>
|
4057
|
+
<xsl:when test="$width > $width_effective_px">
|
4058
|
+
<xsl:value-of select="$width_effective_px div $width"/>
|
4059
|
+
</xsl:when>
|
4060
|
+
<xsl:otherwise>1</xsl:otherwise>
|
4061
|
+
</xsl:choose>
|
4062
|
+
</xsl:variable>
|
4063
|
+
|
4064
|
+
<xsl:variable name="scale_y">
|
4065
|
+
<xsl:choose>
|
4066
|
+
<xsl:when test="$height * $scale_x > $height_effective_px">
|
4067
|
+
<xsl:value-of select="$height_effective_px div ($height * $scale_x)"/>
|
4068
|
+
</xsl:when>
|
4069
|
+
<xsl:otherwise>1</xsl:otherwise>
|
4070
|
+
</xsl:choose>
|
4071
|
+
</xsl:variable>
|
4072
|
+
|
4073
|
+
<xsl:variable name="scale">
|
4074
|
+
<xsl:choose>
|
4075
|
+
<xsl:when test="$scale_y != 1">
|
4076
|
+
<xsl:value-of select="$scale_x * $scale_y"/>
|
4077
|
+
</xsl:when>
|
4078
|
+
<xsl:otherwise>
|
4079
|
+
<xsl:value-of select="$scale_x"/>
|
4080
|
+
</xsl:otherwise>
|
4081
|
+
</xsl:choose>
|
4082
|
+
</xsl:variable>
|
4083
|
+
|
4084
|
+
<xsl:variable name="width_scale" select="round($width * $scale)"/>
|
4085
|
+
<xsl:variable name="height_scale" select="round($height * $scale)"/>
|
4086
|
+
|
4087
|
+
<fo:table table-layout="fixed" width="100%">
|
4088
|
+
<fo:table-column column-width="proportional-column-width(1)"/>
|
4089
|
+
<fo:table-column column-width="{$width_scale}px"/>
|
4090
|
+
<fo:table-column column-width="proportional-column-width(1)"/>
|
4091
|
+
<fo:table-body>
|
4092
|
+
<fo:table-row>
|
4093
|
+
<fo:table-cell column-number="2">
|
4094
|
+
<fo:block>
|
4095
|
+
<fo:block-container width="{$width_scale}px" height="{$height_scale}px">
|
4096
|
+
<xsl:if test="../*[local-name() = 'name']/*[local-name() = 'bookmark']">
|
4097
|
+
<fo:block line-height="0" font-size="0">
|
4098
|
+
<xsl:for-each select="../*[local-name() = 'name']/*[local-name() = 'bookmark']">
|
4099
|
+
<xsl:call-template name="bookmark"/>
|
4100
|
+
</xsl:for-each>
|
4101
|
+
</fo:block>
|
4102
|
+
</xsl:if>
|
4103
|
+
<fo:block text-depth="0" line-height="0" font-size="0">
|
4104
|
+
|
4105
|
+
<fo:instream-foreign-object fox:alt-text="{$alt-text}">
|
4106
|
+
<xsl:attribute name="width">100%</xsl:attribute>
|
4107
|
+
<xsl:attribute name="content-height">100%</xsl:attribute>
|
4108
|
+
<xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
|
4109
|
+
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
4110
|
+
|
4111
|
+
<xsl:apply-templates select="xalan:nodeset($svg_content)" mode="svg_remove_a"/>
|
4112
|
+
</fo:instream-foreign-object>
|
4113
|
+
</fo:block>
|
4114
|
+
|
4115
|
+
<xsl:apply-templates select=".//*[local-name() = 'a'][*[local-name() = 'rect'] or *[local-name() = 'polygon'] or *[local-name() = 'circle'] or *[local-name() = 'ellipse']]" mode="svg_imagemap_links">
|
4116
|
+
<xsl:with-param name="scale" select="$scale"/>
|
4117
|
+
</xsl:apply-templates>
|
4118
|
+
</fo:block-container>
|
4119
|
+
</fo:block>
|
4120
|
+
</fo:table-cell>
|
4121
|
+
</fo:table-row>
|
4122
|
+
</fo:table-body>
|
4123
|
+
</fo:table>
|
4124
|
+
</fo:block>
|
4125
|
+
|
4126
|
+
</xsl:when>
|
4127
|
+
<xsl:otherwise>
|
4128
|
+
<fo:block xsl:use-attribute-sets="image-style">
|
4129
|
+
<fo:instream-foreign-object fox:alt-text="{$alt-text}">
|
4130
|
+
<xsl:attribute name="width">100%</xsl:attribute>
|
4131
|
+
<xsl:attribute name="content-height">100%</xsl:attribute>
|
4132
|
+
<xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
|
4133
|
+
<!-- effective height 297 - 27.4 - 13 = 256.6 -->
|
4134
|
+
<!-- effective width 210 - 12.5 - 25 = 172.5 -->
|
4135
|
+
<!-- effective height / width = 1.48, 1.4 - with title -->
|
4136
|
+
<xsl:if test="@height > (@width * 1.4)"> <!-- for images with big height -->
|
4137
|
+
<xsl:variable name="width" select="((@width * 1.4) div @height) * 100"/>
|
4138
|
+
<xsl:attribute name="width"><xsl:value-of select="$width"/>%</xsl:attribute>
|
4139
|
+
</xsl:if>
|
4140
|
+
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
4141
|
+
<xsl:copy-of select="$svg_content"/>
|
4142
|
+
</fo:instream-foreign-object>
|
4143
|
+
</fo:block>
|
4144
|
+
</xsl:otherwise>
|
4145
|
+
</xsl:choose>
|
4146
|
+
</xsl:template><xsl:template match="@*|node()" mode="svg_update">
|
4147
|
+
<xsl:copy>
|
4148
|
+
<xsl:apply-templates select="@*|node()" mode="svg_update"/>
|
4149
|
+
</xsl:copy>
|
4150
|
+
</xsl:template><xsl:template match="*[local-name() = 'image']/@href" mode="svg_update">
|
4151
|
+
<xsl:attribute name="href" namespace="http://www.w3.org/1999/xlink">
|
4152
|
+
<xsl:value-of select="."/>
|
4153
|
+
</xsl:attribute>
|
4154
|
+
</xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][@mimetype = 'image/svg+xml' and @src[not(starts-with(., 'data:image/'))]]" priority="2">
|
4155
|
+
<xsl:variable name="svg_content" select="document(@src)"/>
|
4156
|
+
<xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
|
4157
|
+
<xsl:for-each select="xalan:nodeset($svg_content)/node()">
|
4158
|
+
<xsl:call-template name="image_svg">
|
4159
|
+
<xsl:with-param name="name" select="$name"/>
|
4160
|
+
</xsl:call-template>
|
4161
|
+
</xsl:for-each>
|
4162
|
+
</xsl:template><xsl:template match="@*|node()" mode="svg_remove_a">
|
4163
|
+
<xsl:copy>
|
4164
|
+
<xsl:apply-templates select="@*|node()" mode="svg_remove_a"/>
|
4165
|
+
</xsl:copy>
|
4166
|
+
</xsl:template><xsl:template match="*[local-name() = 'a']" mode="svg_remove_a">
|
4167
|
+
<xsl:apply-templates mode="svg_remove_a"/>
|
4168
|
+
</xsl:template><xsl:template match="*[local-name() = 'a']" mode="svg_imagemap_links">
|
4169
|
+
<xsl:param name="scale"/>
|
4170
|
+
<xsl:variable name="dest">
|
4171
|
+
<xsl:choose>
|
4172
|
+
<xsl:when test="starts-with(@href, '#')">
|
4173
|
+
<xsl:value-of select="substring-after(@href, '#')"/>
|
4174
|
+
</xsl:when>
|
4175
|
+
<xsl:otherwise>
|
4176
|
+
<xsl:value-of select="@href"/>
|
4177
|
+
</xsl:otherwise>
|
4178
|
+
</xsl:choose>
|
4179
|
+
</xsl:variable>
|
4180
|
+
<xsl:for-each select="./*[local-name() = 'rect']">
|
4181
|
+
<xsl:call-template name="insertSVGMapLink">
|
4182
|
+
<xsl:with-param name="left" select="floor(@x * $scale)"/>
|
4183
|
+
<xsl:with-param name="top" select="floor(@y * $scale)"/>
|
4184
|
+
<xsl:with-param name="width" select="floor(@width * $scale)"/>
|
4185
|
+
<xsl:with-param name="height" select="floor(@height * $scale)"/>
|
4186
|
+
<xsl:with-param name="dest" select="$dest"/>
|
4187
|
+
</xsl:call-template>
|
4188
|
+
</xsl:for-each>
|
4189
|
+
|
4190
|
+
<xsl:for-each select="./*[local-name() = 'polygon']">
|
4191
|
+
<xsl:variable name="points">
|
4192
|
+
<xsl:call-template name="split">
|
4193
|
+
<xsl:with-param name="pText" select="@points"/>
|
4194
|
+
</xsl:call-template>
|
4195
|
+
</xsl:variable>
|
4196
|
+
<xsl:variable name="x_coords">
|
4197
|
+
<xsl:for-each select="xalan:nodeset($points)//item[position() mod 2 = 1]">
|
4198
|
+
<xsl:sort select="." data-type="number"/>
|
4199
|
+
<x><xsl:value-of select="."/></x>
|
4200
|
+
</xsl:for-each>
|
4201
|
+
</xsl:variable>
|
4202
|
+
<xsl:variable name="y_coords">
|
4203
|
+
<xsl:for-each select="xalan:nodeset($points)//item[position() mod 2 = 0]">
|
4204
|
+
<xsl:sort select="." data-type="number"/>
|
4205
|
+
<y><xsl:value-of select="."/></y>
|
4206
|
+
</xsl:for-each>
|
4207
|
+
</xsl:variable>
|
4208
|
+
<xsl:variable name="x" select="xalan:nodeset($x_coords)//x[1]"/>
|
4209
|
+
<xsl:variable name="y" select="xalan:nodeset($y_coords)//y[1]"/>
|
4210
|
+
<xsl:variable name="width" select="xalan:nodeset($x_coords)//x[last()] - $x"/>
|
4211
|
+
<xsl:variable name="height" select="xalan:nodeset($y_coords)//y[last()] - $y"/>
|
4212
|
+
<xsl:call-template name="insertSVGMapLink">
|
4213
|
+
<xsl:with-param name="left" select="floor($x * $scale)"/>
|
4214
|
+
<xsl:with-param name="top" select="floor($y * $scale)"/>
|
4215
|
+
<xsl:with-param name="width" select="floor($width * $scale)"/>
|
4216
|
+
<xsl:with-param name="height" select="floor($height * $scale)"/>
|
4217
|
+
<xsl:with-param name="dest" select="$dest"/>
|
4218
|
+
</xsl:call-template>
|
4219
|
+
</xsl:for-each>
|
4220
|
+
|
4221
|
+
<xsl:for-each select="./*[local-name() = 'circle']">
|
4222
|
+
<xsl:call-template name="insertSVGMapLink">
|
4223
|
+
<xsl:with-param name="left" select="floor((@cx - @r) * $scale)"/>
|
4224
|
+
<xsl:with-param name="top" select="floor((@cy - @r) * $scale)"/>
|
4225
|
+
<xsl:with-param name="width" select="floor(@r * 2 * $scale)"/>
|
4226
|
+
<xsl:with-param name="height" select="floor(@r * 2 * $scale)"/>
|
4227
|
+
<xsl:with-param name="dest" select="$dest"/>
|
4228
|
+
</xsl:call-template>
|
4229
|
+
</xsl:for-each>
|
4230
|
+
<xsl:for-each select="./*[local-name() = 'ellipse']">
|
4231
|
+
<xsl:call-template name="insertSVGMapLink">
|
4232
|
+
<xsl:with-param name="left" select="floor((@cx - @rx) * $scale)"/>
|
4233
|
+
<xsl:with-param name="top" select="floor((@cy - @ry) * $scale)"/>
|
4234
|
+
<xsl:with-param name="width" select="floor(@rx * 2 * $scale)"/>
|
4235
|
+
<xsl:with-param name="height" select="floor(@ry * 2 * $scale)"/>
|
4236
|
+
<xsl:with-param name="dest" select="$dest"/>
|
4237
|
+
</xsl:call-template>
|
4238
|
+
</xsl:for-each>
|
4239
|
+
</xsl:template><xsl:template name="insertSVGMapLink">
|
4240
|
+
<xsl:param name="left"/>
|
4241
|
+
<xsl:param name="top"/>
|
4242
|
+
<xsl:param name="width"/>
|
4243
|
+
<xsl:param name="height"/>
|
4244
|
+
<xsl:param name="dest"/>
|
4245
|
+
<fo:block-container position="absolute" left="{$left}px" top="{$top}px" width="{$width}px" height="{$height}px">
|
4246
|
+
<fo:block font-size="1pt">
|
4247
|
+
<fo:basic-link internal-destination="{$dest}" fox:alt-text="svg link">
|
4248
|
+
<fo:inline-container inline-progression-dimension="100%">
|
4249
|
+
<fo:block-container height="{$height - 1}px" width="100%">
|
4250
|
+
<!-- DEBUG <xsl:if test="local-name()='polygon'">
|
4251
|
+
<xsl:attribute name="background-color">magenta</xsl:attribute>
|
4252
|
+
</xsl:if> -->
|
4253
|
+
<fo:block> </fo:block></fo:block-container>
|
4254
|
+
</fo:inline-container>
|
4255
|
+
</fo:basic-link>
|
4256
|
+
</fo:block>
|
4257
|
+
</fo:block-container>
|
4017
4258
|
</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">
|
4018
4259
|
<xsl:apply-templates mode="contents"/>
|
4019
4260
|
<xsl:text> </xsl:text>
|
@@ -4042,28 +4283,39 @@
|
|
4042
4283
|
<xsl:when test="count(xalan:nodeset($contents)/doc) > 1">
|
4043
4284
|
<xsl:for-each select="xalan:nodeset($contents)/doc">
|
4044
4285
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
4286
|
+
<xsl:if test="@bundle = 'true'">
|
4287
|
+
<xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
|
4288
|
+
</xsl:if>
|
4045
4289
|
<fo:bookmark-title>
|
4046
|
-
<xsl:variable name="bookmark-title_">
|
4047
|
-
<xsl:call-template name="getLangVersion">
|
4048
|
-
<xsl:with-param name="lang" select="@lang"/>
|
4049
|
-
<xsl:with-param name="doctype" select="@doctype"/>
|
4050
|
-
<xsl:with-param name="title" select="@title-part"/>
|
4051
|
-
</xsl:call-template>
|
4052
|
-
</xsl:variable>
|
4053
4290
|
<xsl:choose>
|
4054
|
-
<xsl:when test="normalize-space(
|
4055
|
-
<xsl:
|
4056
|
-
|
4057
|
-
|
4291
|
+
<xsl:when test="not(normalize-space(@bundle) = 'true')"> <!-- 'bundle' means several different documents (not language versions) in one xml -->
|
4292
|
+
<xsl:variable name="bookmark-title_">
|
4293
|
+
<xsl:call-template name="getLangVersion">
|
4294
|
+
<xsl:with-param name="lang" select="@lang"/>
|
4295
|
+
<xsl:with-param name="doctype" select="@doctype"/>
|
4296
|
+
<xsl:with-param name="title" select="@title-part"/>
|
4297
|
+
</xsl:call-template>
|
4298
|
+
</xsl:variable>
|
4058
4299
|
<xsl:choose>
|
4059
|
-
<xsl:when test="
|
4060
|
-
|
4061
|
-
|
4062
|
-
<xsl:otherwise
|
4300
|
+
<xsl:when test="normalize-space($bookmark-title_) != ''">
|
4301
|
+
<xsl:value-of select="normalize-space($bookmark-title_)"/>
|
4302
|
+
</xsl:when>
|
4303
|
+
<xsl:otherwise>
|
4304
|
+
<xsl:choose>
|
4305
|
+
<xsl:when test="@lang = 'en'">English</xsl:when>
|
4306
|
+
<xsl:when test="@lang = 'fr'">Français</xsl:when>
|
4307
|
+
<xsl:when test="@lang = 'de'">Deutsche</xsl:when>
|
4308
|
+
<xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
|
4309
|
+
</xsl:choose>
|
4310
|
+
</xsl:otherwise>
|
4063
4311
|
</xsl:choose>
|
4312
|
+
</xsl:when>
|
4313
|
+
<xsl:otherwise>
|
4314
|
+
<xsl:value-of select="@title-part"/>
|
4064
4315
|
</xsl:otherwise>
|
4065
4316
|
</xsl:choose>
|
4066
4317
|
</fo:bookmark-title>
|
4318
|
+
|
4067
4319
|
<xsl:apply-templates select="contents/item" mode="bookmark"/>
|
4068
4320
|
|
4069
4321
|
<xsl:call-template name="insertFigureBookmarks">
|
@@ -4162,16 +4414,23 @@
|
|
4162
4414
|
<xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
|
4163
4415
|
</xsl:choose>
|
4164
4416
|
</xsl:template><xsl:template match="item" mode="bookmark">
|
4165
|
-
<
|
4166
|
-
|
4167
|
-
|
4168
|
-
|
4169
|
-
<xsl:
|
4170
|
-
|
4171
|
-
|
4172
|
-
|
4173
|
-
|
4174
|
-
|
4417
|
+
<xsl:choose>
|
4418
|
+
<xsl:when test="@id != ''">
|
4419
|
+
<fo:bookmark internal-destination="{@id}" starting-state="hide">
|
4420
|
+
<fo:bookmark-title>
|
4421
|
+
<xsl:if test="@section != ''">
|
4422
|
+
<xsl:value-of select="@section"/>
|
4423
|
+
<xsl:text> </xsl:text>
|
4424
|
+
</xsl:if>
|
4425
|
+
<xsl:value-of select="normalize-space(title)"/>
|
4426
|
+
</fo:bookmark-title>
|
4427
|
+
<xsl:apply-templates mode="bookmark"/>
|
4428
|
+
</fo:bookmark>
|
4429
|
+
</xsl:when>
|
4430
|
+
<xsl:otherwise>
|
4431
|
+
<xsl:apply-templates mode="bookmark"/>
|
4432
|
+
</xsl:otherwise>
|
4433
|
+
</xsl:choose>
|
4175
4434
|
</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">
|
4176
4435
|
<xsl:if test="normalize-space() != ''">
|
4177
4436
|
<fo:block xsl:use-attribute-sets="figure-name-style">
|
@@ -4722,6 +4981,7 @@
|
|
4722
4981
|
</xsl:if>
|
4723
4982
|
|
4724
4983
|
<fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
|
4984
|
+
|
4725
4985
|
<xsl:if test="normalize-space(@citeas) = ''">
|
4726
4986
|
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
|
4727
4987
|
</xsl:if>
|
@@ -12,8 +12,12 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
<xsl:variable name="debug">false</xsl:variable>
|
15
|
-
<xsl:variable name="pageWidth" select="
|
16
|
-
<xsl:variable name="pageHeight" select="
|
15
|
+
<xsl:variable name="pageWidth" select="210"/>
|
16
|
+
<xsl:variable name="pageHeight" select="297"/>
|
17
|
+
<xsl:variable name="marginLeftRight1" select="40"/>
|
18
|
+
<xsl:variable name="marginLeftRight2" select="40"/>
|
19
|
+
<xsl:variable name="marginTop" select="30"/>
|
20
|
+
<xsl:variable name="marginBottom" select="34"/>
|
17
21
|
|
18
22
|
<xsl:variable name="contents">
|
19
23
|
<contents>
|
@@ -44,7 +48,7 @@
|
|
44
48
|
<fo:root font-family="Times New Roman, STIX Two Math, Source Han Sans" font-size="10pt" xml:lang="{$lang}">
|
45
49
|
<fo:layout-master-set>
|
46
50
|
<!-- Cover page -->
|
47
|
-
<fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
51
|
+
<fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
48
52
|
<fo:region-body margin-top="20mm" margin-bottom="10mm" margin-left="50mm" margin-right="21mm"/>
|
49
53
|
<fo:region-before extent="20mm"/>
|
50
54
|
<fo:region-after extent="10mm"/>
|
@@ -52,25 +56,25 @@
|
|
52
56
|
<fo:region-end extent="19mm"/>
|
53
57
|
</fo:simple-page-master>
|
54
58
|
|
55
|
-
<fo:simple-page-master master-name="document-preface" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
56
|
-
<fo:region-body margin-top="
|
57
|
-
<fo:region-before region-name="header" extent="
|
58
|
-
<fo:region-after region-name="footer" extent="
|
59
|
+
<fo:simple-page-master master-name="document-preface" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
60
|
+
<fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="19.5mm" margin-right="19.5mm"/>
|
61
|
+
<fo:region-before region-name="header" extent="{$marginTop}mm"/>
|
62
|
+
<fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
|
59
63
|
<fo:region-start region-name="left" extent="19.5mm"/>
|
60
64
|
<fo:region-end region-name="right" extent="19.5mm"/>
|
61
65
|
</fo:simple-page-master>
|
62
66
|
|
63
|
-
<fo:simple-page-master master-name="blank" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
64
|
-
<fo:region-body margin-top="
|
67
|
+
<fo:simple-page-master master-name="blank" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
68
|
+
<fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="19.5mm" margin-right="19.5mm"/>
|
65
69
|
<fo:region-start region-name="left" extent="19.5mm"/>
|
66
70
|
<fo:region-end region-name="right" extent="19.5mm"/>
|
67
71
|
</fo:simple-page-master>
|
68
72
|
|
69
73
|
<!-- Document pages -->
|
70
|
-
<fo:simple-page-master master-name="document" page-width="{$pageWidth}" page-height="{$pageHeight}">
|
71
|
-
<fo:region-body margin-top="
|
72
|
-
<fo:region-before region-name="header" extent="
|
73
|
-
<fo:region-after region-name="footer" extent="
|
74
|
+
<fo:simple-page-master master-name="document" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
|
75
|
+
<fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
|
76
|
+
<fo:region-before region-name="header" extent="{$marginTop}mm"/>
|
77
|
+
<fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
|
74
78
|
<fo:region-start region-name="left" extent="19.5mm"/>
|
75
79
|
<fo:region-end region-name="right" extent="19.5mm"/>
|
76
80
|
</fo:simple-page-master>
|
@@ -1376,6 +1380,7 @@
|
|
1376
1380
|
|
1377
1381
|
|
1378
1382
|
|
1383
|
+
|
1379
1384
|
</xsl:attribute-set><xsl:attribute-set name="note-style">
|
1380
1385
|
|
1381
1386
|
|
@@ -1580,14 +1585,15 @@
|
|
1580
1585
|
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
|
1581
1586
|
|
1582
1587
|
<!-- Normative references -->
|
1583
|
-
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/>
|
1588
|
+
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]" mode="contents"/>
|
1584
1589
|
<!-- Terms and definitions -->
|
1585
1590
|
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>
|
1586
1591
|
<!-- Another main sections -->
|
1587
1592
|
<xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
|
1588
1593
|
<xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
|
1589
1594
|
<!-- Bibliography -->
|
1590
|
-
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/>
|
1595
|
+
<xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]" mode="contents"/>
|
1596
|
+
|
1591
1597
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
1592
1598
|
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
|
1593
1599
|
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
|
@@ -2381,6 +2387,7 @@
|
|
2381
2387
|
|
2382
2388
|
|
2383
2389
|
|
2390
|
+
|
2384
2391
|
<xsl:if test="ancestor::*[local-name()='sections']">
|
2385
2392
|
<xsl:attribute name="border">solid black 0pt</xsl:attribute>
|
2386
2393
|
<xsl:attribute name="padding-top">1mm</xsl:attribute>
|
@@ -2422,6 +2429,7 @@
|
|
2422
2429
|
|
2423
2430
|
|
2424
2431
|
|
2432
|
+
|
2425
2433
|
<fo:inline padding-right="2mm">
|
2426
2434
|
|
2427
2435
|
|
@@ -2475,6 +2483,7 @@
|
|
2475
2483
|
|
2476
2484
|
|
2477
2485
|
|
2486
|
+
|
2478
2487
|
<xsl:value-of select="@reference"/>
|
2479
2488
|
|
2480
2489
|
|
@@ -2619,6 +2628,9 @@
|
|
2619
2628
|
|
2620
2629
|
|
2621
2630
|
|
2631
|
+
|
2632
|
+
|
2633
|
+
|
2622
2634
|
<fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
|
2623
2635
|
|
2624
2636
|
|
@@ -3518,6 +3530,7 @@
|
|
3518
3530
|
<fo:inline xsl:use-attribute-sets="link-style">
|
3519
3531
|
|
3520
3532
|
|
3533
|
+
|
3521
3534
|
<xsl:choose>
|
3522
3535
|
<xsl:when test="$target_text = ''">
|
3523
3536
|
<xsl:apply-templates/>
|
@@ -3888,6 +3901,234 @@
|
|
3888
3901
|
<xsl:param name="height"/>
|
3889
3902
|
<line xmlns="http://www.w3.org/2000/svg" x1="0" y1="0" x2="{$width}" y2="{$height}" style="stroke: rgb(255, 0, 0); stroke-width:4px; "/>
|
3890
3903
|
<line xmlns="http://www.w3.org/2000/svg" x1="0" y1="{$height}" x2="{$width}" y2="0" style="stroke: rgb(255, 0, 0); stroke-width:4px; "/>
|
3904
|
+
</xsl:template><xsl:variable name="figure_name_height">14</xsl:variable><xsl:variable name="width_effective" select="$pageWidth - $marginLeftRight1 - $marginLeftRight2"/><xsl:variable name="height_effective" select="$pageHeight - $marginTop - $marginBottom - $figure_name_height"/><xsl:variable name="image_dpi" select="96"/><xsl:variable name="width_effective_px" select="$width_effective div 25.4 * $image_dpi"/><xsl:variable name="height_effective_px" select="$height_effective div 25.4 * $image_dpi"/><xsl:template match="*[local-name() = 'figure'][not(*[local-name() = 'image']) and *[local-name() = 'svg']]/*[local-name() = 'name']/*[local-name() = 'bookmark']" priority="2"/><xsl:template match="*[local-name() = 'figure'][not(*[local-name() = 'image'])]/*[local-name() = 'svg']" priority="2" name="image_svg">
|
3905
|
+
<xsl:param name="name"/>
|
3906
|
+
|
3907
|
+
<xsl:variable name="svg_content">
|
3908
|
+
<xsl:apply-templates select="." mode="svg_update"/>
|
3909
|
+
</xsl:variable>
|
3910
|
+
|
3911
|
+
<xsl:variable name="alt-text">
|
3912
|
+
<xsl:choose>
|
3913
|
+
<xsl:when test="normalize-space(../*[local-name() = 'name']) != ''">
|
3914
|
+
<xsl:value-of select="../*[local-name() = 'name']"/>
|
3915
|
+
</xsl:when>
|
3916
|
+
<xsl:when test="normalize-space($name) != ''">
|
3917
|
+
<xsl:value-of select="$name"/>
|
3918
|
+
</xsl:when>
|
3919
|
+
<xsl:otherwise>Figure</xsl:otherwise>
|
3920
|
+
</xsl:choose>
|
3921
|
+
</xsl:variable>
|
3922
|
+
|
3923
|
+
<xsl:choose>
|
3924
|
+
<xsl:when test=".//*[local-name() = 'a'][*[local-name() = 'rect'] or *[local-name() = 'polygon'] or *[local-name() = 'circle'] or *[local-name() = 'ellipse']]">
|
3925
|
+
<fo:block>
|
3926
|
+
<xsl:variable name="width" select="@width"/>
|
3927
|
+
<xsl:variable name="height" select="@height"/>
|
3928
|
+
|
3929
|
+
<xsl:variable name="scale_x">
|
3930
|
+
<xsl:choose>
|
3931
|
+
<xsl:when test="$width > $width_effective_px">
|
3932
|
+
<xsl:value-of select="$width_effective_px div $width"/>
|
3933
|
+
</xsl:when>
|
3934
|
+
<xsl:otherwise>1</xsl:otherwise>
|
3935
|
+
</xsl:choose>
|
3936
|
+
</xsl:variable>
|
3937
|
+
|
3938
|
+
<xsl:variable name="scale_y">
|
3939
|
+
<xsl:choose>
|
3940
|
+
<xsl:when test="$height * $scale_x > $height_effective_px">
|
3941
|
+
<xsl:value-of select="$height_effective_px div ($height * $scale_x)"/>
|
3942
|
+
</xsl:when>
|
3943
|
+
<xsl:otherwise>1</xsl:otherwise>
|
3944
|
+
</xsl:choose>
|
3945
|
+
</xsl:variable>
|
3946
|
+
|
3947
|
+
<xsl:variable name="scale">
|
3948
|
+
<xsl:choose>
|
3949
|
+
<xsl:when test="$scale_y != 1">
|
3950
|
+
<xsl:value-of select="$scale_x * $scale_y"/>
|
3951
|
+
</xsl:when>
|
3952
|
+
<xsl:otherwise>
|
3953
|
+
<xsl:value-of select="$scale_x"/>
|
3954
|
+
</xsl:otherwise>
|
3955
|
+
</xsl:choose>
|
3956
|
+
</xsl:variable>
|
3957
|
+
|
3958
|
+
<xsl:variable name="width_scale" select="round($width * $scale)"/>
|
3959
|
+
<xsl:variable name="height_scale" select="round($height * $scale)"/>
|
3960
|
+
|
3961
|
+
<fo:table table-layout="fixed" width="100%">
|
3962
|
+
<fo:table-column column-width="proportional-column-width(1)"/>
|
3963
|
+
<fo:table-column column-width="{$width_scale}px"/>
|
3964
|
+
<fo:table-column column-width="proportional-column-width(1)"/>
|
3965
|
+
<fo:table-body>
|
3966
|
+
<fo:table-row>
|
3967
|
+
<fo:table-cell column-number="2">
|
3968
|
+
<fo:block>
|
3969
|
+
<fo:block-container width="{$width_scale}px" height="{$height_scale}px">
|
3970
|
+
<xsl:if test="../*[local-name() = 'name']/*[local-name() = 'bookmark']">
|
3971
|
+
<fo:block line-height="0" font-size="0">
|
3972
|
+
<xsl:for-each select="../*[local-name() = 'name']/*[local-name() = 'bookmark']">
|
3973
|
+
<xsl:call-template name="bookmark"/>
|
3974
|
+
</xsl:for-each>
|
3975
|
+
</fo:block>
|
3976
|
+
</xsl:if>
|
3977
|
+
<fo:block text-depth="0" line-height="0" font-size="0">
|
3978
|
+
|
3979
|
+
<fo:instream-foreign-object fox:alt-text="{$alt-text}">
|
3980
|
+
<xsl:attribute name="width">100%</xsl:attribute>
|
3981
|
+
<xsl:attribute name="content-height">100%</xsl:attribute>
|
3982
|
+
<xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
|
3983
|
+
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
3984
|
+
|
3985
|
+
<xsl:apply-templates select="xalan:nodeset($svg_content)" mode="svg_remove_a"/>
|
3986
|
+
</fo:instream-foreign-object>
|
3987
|
+
</fo:block>
|
3988
|
+
|
3989
|
+
<xsl:apply-templates select=".//*[local-name() = 'a'][*[local-name() = 'rect'] or *[local-name() = 'polygon'] or *[local-name() = 'circle'] or *[local-name() = 'ellipse']]" mode="svg_imagemap_links">
|
3990
|
+
<xsl:with-param name="scale" select="$scale"/>
|
3991
|
+
</xsl:apply-templates>
|
3992
|
+
</fo:block-container>
|
3993
|
+
</fo:block>
|
3994
|
+
</fo:table-cell>
|
3995
|
+
</fo:table-row>
|
3996
|
+
</fo:table-body>
|
3997
|
+
</fo:table>
|
3998
|
+
</fo:block>
|
3999
|
+
|
4000
|
+
</xsl:when>
|
4001
|
+
<xsl:otherwise>
|
4002
|
+
<fo:block xsl:use-attribute-sets="image-style">
|
4003
|
+
<fo:instream-foreign-object fox:alt-text="{$alt-text}">
|
4004
|
+
<xsl:attribute name="width">100%</xsl:attribute>
|
4005
|
+
<xsl:attribute name="content-height">100%</xsl:attribute>
|
4006
|
+
<xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
|
4007
|
+
<!-- effective height 297 - 27.4 - 13 = 256.6 -->
|
4008
|
+
<!-- effective width 210 - 12.5 - 25 = 172.5 -->
|
4009
|
+
<!-- effective height / width = 1.48, 1.4 - with title -->
|
4010
|
+
<xsl:if test="@height > (@width * 1.4)"> <!-- for images with big height -->
|
4011
|
+
<xsl:variable name="width" select="((@width * 1.4) div @height) * 100"/>
|
4012
|
+
<xsl:attribute name="width"><xsl:value-of select="$width"/>%</xsl:attribute>
|
4013
|
+
</xsl:if>
|
4014
|
+
<xsl:attribute name="scaling">uniform</xsl:attribute>
|
4015
|
+
<xsl:copy-of select="$svg_content"/>
|
4016
|
+
</fo:instream-foreign-object>
|
4017
|
+
</fo:block>
|
4018
|
+
</xsl:otherwise>
|
4019
|
+
</xsl:choose>
|
4020
|
+
</xsl:template><xsl:template match="@*|node()" mode="svg_update">
|
4021
|
+
<xsl:copy>
|
4022
|
+
<xsl:apply-templates select="@*|node()" mode="svg_update"/>
|
4023
|
+
</xsl:copy>
|
4024
|
+
</xsl:template><xsl:template match="*[local-name() = 'image']/@href" mode="svg_update">
|
4025
|
+
<xsl:attribute name="href" namespace="http://www.w3.org/1999/xlink">
|
4026
|
+
<xsl:value-of select="."/>
|
4027
|
+
</xsl:attribute>
|
4028
|
+
</xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][@mimetype = 'image/svg+xml' and @src[not(starts-with(., 'data:image/'))]]" priority="2">
|
4029
|
+
<xsl:variable name="svg_content" select="document(@src)"/>
|
4030
|
+
<xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
|
4031
|
+
<xsl:for-each select="xalan:nodeset($svg_content)/node()">
|
4032
|
+
<xsl:call-template name="image_svg">
|
4033
|
+
<xsl:with-param name="name" select="$name"/>
|
4034
|
+
</xsl:call-template>
|
4035
|
+
</xsl:for-each>
|
4036
|
+
</xsl:template><xsl:template match="@*|node()" mode="svg_remove_a">
|
4037
|
+
<xsl:copy>
|
4038
|
+
<xsl:apply-templates select="@*|node()" mode="svg_remove_a"/>
|
4039
|
+
</xsl:copy>
|
4040
|
+
</xsl:template><xsl:template match="*[local-name() = 'a']" mode="svg_remove_a">
|
4041
|
+
<xsl:apply-templates mode="svg_remove_a"/>
|
4042
|
+
</xsl:template><xsl:template match="*[local-name() = 'a']" mode="svg_imagemap_links">
|
4043
|
+
<xsl:param name="scale"/>
|
4044
|
+
<xsl:variable name="dest">
|
4045
|
+
<xsl:choose>
|
4046
|
+
<xsl:when test="starts-with(@href, '#')">
|
4047
|
+
<xsl:value-of select="substring-after(@href, '#')"/>
|
4048
|
+
</xsl:when>
|
4049
|
+
<xsl:otherwise>
|
4050
|
+
<xsl:value-of select="@href"/>
|
4051
|
+
</xsl:otherwise>
|
4052
|
+
</xsl:choose>
|
4053
|
+
</xsl:variable>
|
4054
|
+
<xsl:for-each select="./*[local-name() = 'rect']">
|
4055
|
+
<xsl:call-template name="insertSVGMapLink">
|
4056
|
+
<xsl:with-param name="left" select="floor(@x * $scale)"/>
|
4057
|
+
<xsl:with-param name="top" select="floor(@y * $scale)"/>
|
4058
|
+
<xsl:with-param name="width" select="floor(@width * $scale)"/>
|
4059
|
+
<xsl:with-param name="height" select="floor(@height * $scale)"/>
|
4060
|
+
<xsl:with-param name="dest" select="$dest"/>
|
4061
|
+
</xsl:call-template>
|
4062
|
+
</xsl:for-each>
|
4063
|
+
|
4064
|
+
<xsl:for-each select="./*[local-name() = 'polygon']">
|
4065
|
+
<xsl:variable name="points">
|
4066
|
+
<xsl:call-template name="split">
|
4067
|
+
<xsl:with-param name="pText" select="@points"/>
|
4068
|
+
</xsl:call-template>
|
4069
|
+
</xsl:variable>
|
4070
|
+
<xsl:variable name="x_coords">
|
4071
|
+
<xsl:for-each select="xalan:nodeset($points)//item[position() mod 2 = 1]">
|
4072
|
+
<xsl:sort select="." data-type="number"/>
|
4073
|
+
<x><xsl:value-of select="."/></x>
|
4074
|
+
</xsl:for-each>
|
4075
|
+
</xsl:variable>
|
4076
|
+
<xsl:variable name="y_coords">
|
4077
|
+
<xsl:for-each select="xalan:nodeset($points)//item[position() mod 2 = 0]">
|
4078
|
+
<xsl:sort select="." data-type="number"/>
|
4079
|
+
<y><xsl:value-of select="."/></y>
|
4080
|
+
</xsl:for-each>
|
4081
|
+
</xsl:variable>
|
4082
|
+
<xsl:variable name="x" select="xalan:nodeset($x_coords)//x[1]"/>
|
4083
|
+
<xsl:variable name="y" select="xalan:nodeset($y_coords)//y[1]"/>
|
4084
|
+
<xsl:variable name="width" select="xalan:nodeset($x_coords)//x[last()] - $x"/>
|
4085
|
+
<xsl:variable name="height" select="xalan:nodeset($y_coords)//y[last()] - $y"/>
|
4086
|
+
<xsl:call-template name="insertSVGMapLink">
|
4087
|
+
<xsl:with-param name="left" select="floor($x * $scale)"/>
|
4088
|
+
<xsl:with-param name="top" select="floor($y * $scale)"/>
|
4089
|
+
<xsl:with-param name="width" select="floor($width * $scale)"/>
|
4090
|
+
<xsl:with-param name="height" select="floor($height * $scale)"/>
|
4091
|
+
<xsl:with-param name="dest" select="$dest"/>
|
4092
|
+
</xsl:call-template>
|
4093
|
+
</xsl:for-each>
|
4094
|
+
|
4095
|
+
<xsl:for-each select="./*[local-name() = 'circle']">
|
4096
|
+
<xsl:call-template name="insertSVGMapLink">
|
4097
|
+
<xsl:with-param name="left" select="floor((@cx - @r) * $scale)"/>
|
4098
|
+
<xsl:with-param name="top" select="floor((@cy - @r) * $scale)"/>
|
4099
|
+
<xsl:with-param name="width" select="floor(@r * 2 * $scale)"/>
|
4100
|
+
<xsl:with-param name="height" select="floor(@r * 2 * $scale)"/>
|
4101
|
+
<xsl:with-param name="dest" select="$dest"/>
|
4102
|
+
</xsl:call-template>
|
4103
|
+
</xsl:for-each>
|
4104
|
+
<xsl:for-each select="./*[local-name() = 'ellipse']">
|
4105
|
+
<xsl:call-template name="insertSVGMapLink">
|
4106
|
+
<xsl:with-param name="left" select="floor((@cx - @rx) * $scale)"/>
|
4107
|
+
<xsl:with-param name="top" select="floor((@cy - @ry) * $scale)"/>
|
4108
|
+
<xsl:with-param name="width" select="floor(@rx * 2 * $scale)"/>
|
4109
|
+
<xsl:with-param name="height" select="floor(@ry * 2 * $scale)"/>
|
4110
|
+
<xsl:with-param name="dest" select="$dest"/>
|
4111
|
+
</xsl:call-template>
|
4112
|
+
</xsl:for-each>
|
4113
|
+
</xsl:template><xsl:template name="insertSVGMapLink">
|
4114
|
+
<xsl:param name="left"/>
|
4115
|
+
<xsl:param name="top"/>
|
4116
|
+
<xsl:param name="width"/>
|
4117
|
+
<xsl:param name="height"/>
|
4118
|
+
<xsl:param name="dest"/>
|
4119
|
+
<fo:block-container position="absolute" left="{$left}px" top="{$top}px" width="{$width}px" height="{$height}px">
|
4120
|
+
<fo:block font-size="1pt">
|
4121
|
+
<fo:basic-link internal-destination="{$dest}" fox:alt-text="svg link">
|
4122
|
+
<fo:inline-container inline-progression-dimension="100%">
|
4123
|
+
<fo:block-container height="{$height - 1}px" width="100%">
|
4124
|
+
<!-- DEBUG <xsl:if test="local-name()='polygon'">
|
4125
|
+
<xsl:attribute name="background-color">magenta</xsl:attribute>
|
4126
|
+
</xsl:if> -->
|
4127
|
+
<fo:block> </fo:block></fo:block-container>
|
4128
|
+
</fo:inline-container>
|
4129
|
+
</fo:basic-link>
|
4130
|
+
</fo:block>
|
4131
|
+
</fo:block-container>
|
3891
4132
|
</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">
|
3892
4133
|
<xsl:apply-templates mode="contents"/>
|
3893
4134
|
<xsl:text> </xsl:text>
|
@@ -3916,28 +4157,39 @@
|
|
3916
4157
|
<xsl:when test="count(xalan:nodeset($contents)/doc) > 1">
|
3917
4158
|
<xsl:for-each select="xalan:nodeset($contents)/doc">
|
3918
4159
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
4160
|
+
<xsl:if test="@bundle = 'true'">
|
4161
|
+
<xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
|
4162
|
+
</xsl:if>
|
3919
4163
|
<fo:bookmark-title>
|
3920
|
-
<xsl:variable name="bookmark-title_">
|
3921
|
-
<xsl:call-template name="getLangVersion">
|
3922
|
-
<xsl:with-param name="lang" select="@lang"/>
|
3923
|
-
<xsl:with-param name="doctype" select="@doctype"/>
|
3924
|
-
<xsl:with-param name="title" select="@title-part"/>
|
3925
|
-
</xsl:call-template>
|
3926
|
-
</xsl:variable>
|
3927
4164
|
<xsl:choose>
|
3928
|
-
<xsl:when test="normalize-space(
|
3929
|
-
<xsl:
|
3930
|
-
|
3931
|
-
|
4165
|
+
<xsl:when test="not(normalize-space(@bundle) = 'true')"> <!-- 'bundle' means several different documents (not language versions) in one xml -->
|
4166
|
+
<xsl:variable name="bookmark-title_">
|
4167
|
+
<xsl:call-template name="getLangVersion">
|
4168
|
+
<xsl:with-param name="lang" select="@lang"/>
|
4169
|
+
<xsl:with-param name="doctype" select="@doctype"/>
|
4170
|
+
<xsl:with-param name="title" select="@title-part"/>
|
4171
|
+
</xsl:call-template>
|
4172
|
+
</xsl:variable>
|
3932
4173
|
<xsl:choose>
|
3933
|
-
<xsl:when test="
|
3934
|
-
|
3935
|
-
|
3936
|
-
<xsl:otherwise
|
4174
|
+
<xsl:when test="normalize-space($bookmark-title_) != ''">
|
4175
|
+
<xsl:value-of select="normalize-space($bookmark-title_)"/>
|
4176
|
+
</xsl:when>
|
4177
|
+
<xsl:otherwise>
|
4178
|
+
<xsl:choose>
|
4179
|
+
<xsl:when test="@lang = 'en'">English</xsl:when>
|
4180
|
+
<xsl:when test="@lang = 'fr'">Français</xsl:when>
|
4181
|
+
<xsl:when test="@lang = 'de'">Deutsche</xsl:when>
|
4182
|
+
<xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
|
4183
|
+
</xsl:choose>
|
4184
|
+
</xsl:otherwise>
|
3937
4185
|
</xsl:choose>
|
4186
|
+
</xsl:when>
|
4187
|
+
<xsl:otherwise>
|
4188
|
+
<xsl:value-of select="@title-part"/>
|
3938
4189
|
</xsl:otherwise>
|
3939
4190
|
</xsl:choose>
|
3940
4191
|
</fo:bookmark-title>
|
4192
|
+
|
3941
4193
|
<xsl:apply-templates select="contents/item" mode="bookmark"/>
|
3942
4194
|
|
3943
4195
|
<xsl:call-template name="insertFigureBookmarks">
|
@@ -4036,16 +4288,23 @@
|
|
4036
4288
|
<xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
|
4037
4289
|
</xsl:choose>
|
4038
4290
|
</xsl:template><xsl:template match="item" mode="bookmark">
|
4039
|
-
<
|
4040
|
-
|
4041
|
-
|
4042
|
-
|
4043
|
-
<xsl:
|
4044
|
-
|
4045
|
-
|
4046
|
-
|
4047
|
-
|
4048
|
-
|
4291
|
+
<xsl:choose>
|
4292
|
+
<xsl:when test="@id != ''">
|
4293
|
+
<fo:bookmark internal-destination="{@id}" starting-state="hide">
|
4294
|
+
<fo:bookmark-title>
|
4295
|
+
<xsl:if test="@section != ''">
|
4296
|
+
<xsl:value-of select="@section"/>
|
4297
|
+
<xsl:text> </xsl:text>
|
4298
|
+
</xsl:if>
|
4299
|
+
<xsl:value-of select="normalize-space(title)"/>
|
4300
|
+
</fo:bookmark-title>
|
4301
|
+
<xsl:apply-templates mode="bookmark"/>
|
4302
|
+
</fo:bookmark>
|
4303
|
+
</xsl:when>
|
4304
|
+
<xsl:otherwise>
|
4305
|
+
<xsl:apply-templates mode="bookmark"/>
|
4306
|
+
</xsl:otherwise>
|
4307
|
+
</xsl:choose>
|
4049
4308
|
</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">
|
4050
4309
|
<xsl:if test="normalize-space() != ''">
|
4051
4310
|
<fo:block xsl:use-attribute-sets="figure-name-style">
|
@@ -4596,6 +4855,7 @@
|
|
4596
4855
|
</xsl:if>
|
4597
4856
|
|
4598
4857
|
<fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
|
4858
|
+
|
4599
4859
|
<xsl:if test="normalize-space(@citeas) = ''">
|
4600
4860
|
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
|
4601
4861
|
</xsl:if>
|