metanorma-jis 0.0.5 → 0.0.7

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.
@@ -272,7 +272,7 @@
272
272
  <xsl:variable name="paged_xml_preface" select="xalan:nodeset($paged_xml_preface_)"/>
273
273
 
274
274
  <xsl:if test="$paged_xml_preface/*[local-name()='page'] and count($paged_xml_preface/*[local-name()='page']/*) != 0">
275
- <!-- BSI Preface pages -->
275
+ <!-- Preface pages -->
276
276
  <fo:page-sequence master-reference="document_preface" force-page-count="no-force">
277
277
 
278
278
  <fo:static-content flow-name="xsl-footnote-separator">
@@ -298,7 +298,7 @@
298
298
  </xsl:for-each>
299
299
  </fo:block>
300
300
  </fo:flow>
301
- </fo:page-sequence> <!-- END BSI Preface pages -->
301
+ </fo:page-sequence> <!-- END Preface pages -->
302
302
  </xsl:if>
303
303
 
304
304
  <!-- Document type rendering -->
@@ -467,6 +467,12 @@
467
467
  </fo:root>
468
468
  </xsl:template>
469
469
 
470
+ <xsl:template match="*[local-name() = 'references'][not(@hidden = 'true')]" mode="linear_xml" priority="2">
471
+ <xsl:copy>
472
+ <xsl:apply-templates select="@*|node()" mode="linear_xml"/>
473
+ </xsl:copy>
474
+ </xsl:template>
475
+
470
476
  <xsl:template match="*[local-name() = 'colon_gothic']">
471
477
  <!-- replace : to : (Fullwidth colon) and render it in the font IPAexGothic -->
472
478
  <fo:inline font-family="IPAexGothic">:</fo:inline>
@@ -941,7 +947,7 @@
941
947
  <xsl:attribute name="margin-bottom">2pt</xsl:attribute>
942
948
  </xsl:if>
943
949
 
944
- <xsl:if test="parent::jis:li or following-sibling::*[1][self::jis:ol or self::jis:ul or self::jis:note or self::jis:example]">
950
+ <xsl:if test="parent::jis:li or following-sibling::*[1][self::jis:ol or self::jis:ul or self::jis:note or self::jis:example] or parent::jis:quote">
945
951
  <xsl:attribute name="margin-bottom">4pt</xsl:attribute>
946
952
  </xsl:if>
947
953
 
@@ -989,6 +995,119 @@
989
995
  </fo:block>
990
996
  </xsl:template>
991
997
 
998
+ <xsl:template match="*[local-name()='li']" priority="2">
999
+ <fo:list-item xsl:use-attribute-sets="list-item-style">
1000
+ <xsl:copy-of select="@id"/>
1001
+
1002
+ <xsl:call-template name="refine_list-item-style"/>
1003
+
1004
+ <fo:list-item-label end-indent="label-end()">
1005
+ <fo:block xsl:use-attribute-sets="list-item-label-style">
1006
+
1007
+ <xsl:call-template name="refine_list-item-label-style"/>
1008
+
1009
+ <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
1010
+ <xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
1011
+ <xsl:call-template name="append_add-style"/>
1012
+ </xsl:if>
1013
+
1014
+ <xsl:variable name="list_item_label_">
1015
+ <xsl:call-template name="getListItemFormat"/>
1016
+ </xsl:variable>
1017
+
1018
+ <xsl:variable name="list_item_label">
1019
+ <xsl:choose>
1020
+ <xsl:when test="(../@type = 'arabic' or ../@type = 'alphabet' or ../@type = 'alphabetic' or ../@type = 'roman') and not(java:endsWith(java:java.lang.String.new($list_item_label_),')'))">
1021
+ <xsl:value-of select="concat($list_item_label_, ')')"/>
1022
+ </xsl:when>
1023
+ <xsl:otherwise><xsl:value-of select="$list_item_label_"/></xsl:otherwise>
1024
+ </xsl:choose>
1025
+ </xsl:variable>
1026
+
1027
+ <xsl:choose>
1028
+ <xsl:when test="contains($list_item_label, ')')">
1029
+ <xsl:value-of select="substring-before($list_item_label,')')"/>
1030
+ <fo:inline font-weight="normal">)</fo:inline>
1031
+ <xsl:value-of select="substring-after($list_item_label,')')"/>
1032
+ </xsl:when>
1033
+ <xsl:otherwise>
1034
+ <xsl:value-of select="$list_item_label"/>
1035
+ </xsl:otherwise>
1036
+ </xsl:choose>
1037
+
1038
+ </fo:block>
1039
+ </fo:list-item-label>
1040
+ <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
1041
+ <fo:block>
1042
+
1043
+ <xsl:call-template name="refine_list-item-body-style"/>
1044
+
1045
+ <xsl:apply-templates mode="list_jis"/>
1046
+
1047
+ <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
1048
+
1049
+ <xsl:for-each select="./bsi:note">
1050
+ <xsl:call-template name="note"/>
1051
+ </xsl:for-each> -->
1052
+ </fo:block>
1053
+ </fo:list-item-body>
1054
+ </fo:list-item>
1055
+ </xsl:template>
1056
+
1057
+ <xsl:template match="node()" priority="2" mode="list_jis">
1058
+ <xsl:apply-templates select="."/>
1059
+ </xsl:template>
1060
+
1061
+ <!-- display footnote after last element in li, except ol or ul -->
1062
+ <xsl:template match="*[local-name()='li']/*[not(local-name() = 'ul') and not(local-name() = 'ol')][last()]" priority="3" mode="list_jis">
1063
+ <xsl:apply-templates select="."/>
1064
+
1065
+ <xsl:variable name="list_id" select="ancestor::*[local-name() = 'ul' or local-name() = 'ol'][1]/@id"/>
1066
+ <!-- render footnotes after current list-item, if there aren't footnotes anymore in the list -->
1067
+ <!-- i.e. i.e. if list-item is latest with footnote -->
1068
+ <xsl:if test="ancestor::*[local-name() = 'li'][1]//jis:fn[ancestor::*[local-name() = 'ul' or local-name() = 'ol'][1][@id = $list_id]] and not(ancestor::*[local-name() = 'li'][1]/following-sibling::*[local-name() = 'li'][.//jis:fn[ancestor::*[local-name() = 'ul' or local-name() = 'ol'][1][@id = $list_id]]])">
1069
+ <xsl:apply-templates select="ancestor::*[local-name() = 'ul' or local-name() = 'ol'][1]//jis:fn[ancestor::*[local-name() = 'ul' or local-name() = 'ol'][1][@id = $list_id]][generate-id(.)=generate-id(key('kfn',@reference)[1])]" mode="fn_after_element">
1070
+ <xsl:with-param name="ancestor">li</xsl:with-param>
1071
+ </xsl:apply-templates>
1072
+ </xsl:if>
1073
+ </xsl:template>
1074
+
1075
+ <xsl:template match="jis:fn" mode="fn_after_element">
1076
+ <xsl:param name="ancestor">li</xsl:param>
1077
+
1078
+ <xsl:variable name="ancestor_tree_">
1079
+ <xsl:for-each select="ancestor::*[local-name() != 'p' and local-name() != 'bibitem' and local-name() != 'biblio-tag']">
1080
+ <item><xsl:value-of select="local-name()"/></item>
1081
+ </xsl:for-each>
1082
+ </xsl:variable>
1083
+ <xsl:variable name="ancestor_tree" select="xalan:nodeset($ancestor_tree_)"/>
1084
+ <!-- <debug><xsl:copy-of select="$ancestor_tree"/></debug>
1085
+ <debug><ancestor><xsl:value-of select="$ancestor"/></ancestor></debug> -->
1086
+
1087
+ <xsl:if test="$ancestor_tree//item[last()][. = $ancestor]">
1088
+ <fo:block-container margin-left="11mm" margin-bottom="4pt" id="{@ref_id}">
1089
+
1090
+ <xsl:if test="position() = last()">
1091
+ <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
1092
+ </xsl:if>
1093
+ <fo:block-container margin-left="0mm">
1094
+ <fo:list-block provisional-distance-between-starts="10mm">
1095
+ <fo:list-item>
1096
+ <fo:list-item-label end-indent="label-end()">
1097
+ <fo:block xsl:use-attribute-sets="note-name-style">注 <fo:inline xsl:use-attribute-sets="fn-num-style"><xsl:value-of select="@current_fn_number"/><fo:inline font-weight="normal">)</fo:inline></fo:inline></fo:block>
1098
+ </fo:list-item-label>
1099
+ <fo:list-item-body start-indent="body-start()">
1100
+ <fo:block>
1101
+ <xsl:apply-templates/>
1102
+ </fo:block>
1103
+ </fo:list-item-body>
1104
+ </fo:list-item>
1105
+ </fo:list-block>
1106
+ </fo:block-container>
1107
+ </fo:block-container>
1108
+ </xsl:if>
1109
+ </xsl:template>
1110
+
992
1111
  <xsl:template name="makePagedXML">
993
1112
  <xsl:param name="structured_xml"/>
994
1113
  <xsl:choose>
@@ -1062,6 +1181,18 @@
1062
1181
  <xsl:copy-of select="xalan:nodeset($text_en)/text/node()"/>
1063
1182
  </xsl:template>
1064
1183
 
1184
+ <!-- for $contents -->
1185
+ <xsl:template match="title/text()">
1186
+ <xsl:variable name="regex_en_contents">([^\u3000-\u9FFF\uF900-\uFFFF\(\)]{1,})</xsl:variable>
1187
+ <xsl:variable name="text_en_" select="java:replaceAll(java:java.lang.String.new(.), $regex_en_contents, concat($tag_font_en_bold_open,'$1',$tag_font_en_bold_close))"/>
1188
+ <xsl:variable name="text_en"><text><xsl:call-template name="replace_text_tags">
1189
+ <xsl:with-param name="tag_open" select="$tag_font_en_bold_open"/>
1190
+ <xsl:with-param name="tag_close" select="$tag_font_en_bold_close"/>
1191
+ <xsl:with-param name="text" select="$text_en_"/>
1192
+ </xsl:call-template></text></xsl:variable>
1193
+ <xsl:apply-templates select="xalan:nodeset($text_en)/text/node()"/>
1194
+ </xsl:template>
1195
+
1065
1196
  <!-- move example title to the first paragraph -->
1066
1197
  <xsl:template match="jis:example[contains(jis:name/text(), ' — ')]" mode="update_xml_step1">
1067
1198
  <xsl:copy>
@@ -1615,6 +1746,10 @@
1615
1746
 
1616
1747
  </xsl:attribute-set>
1617
1748
 
1749
+ <xsl:template name="refine_link-style">
1750
+
1751
+ </xsl:template> <!-- refine_link-style -->
1752
+
1618
1753
  <xsl:attribute-set name="sourcecode-container-style">
1619
1754
 
1620
1755
  </xsl:attribute-set>
@@ -1626,6 +1761,10 @@
1626
1761
 
1627
1762
  </xsl:attribute-set>
1628
1763
 
1764
+ <xsl:template name="refine_sourcecode-style">
1765
+
1766
+ </xsl:template> <!-- refine_sourcecode-style -->
1767
+
1629
1768
  <xsl:attribute-set name="pre-style">
1630
1769
  <xsl:attribute name="font-family">Courier New, <xsl:value-of select="$font_noto_sans_mono"/></xsl:attribute>
1631
1770
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
@@ -1707,6 +1846,10 @@
1707
1846
 
1708
1847
  </xsl:attribute-set> <!-- example-style -->
1709
1848
 
1849
+ <xsl:template name="refine_example-style">
1850
+
1851
+ </xsl:template> <!-- refine_example-style -->
1852
+
1710
1853
  <xsl:attribute-set name="example-body-style">
1711
1854
 
1712
1855
  </xsl:attribute-set> <!-- example-body-style -->
@@ -1723,6 +1866,10 @@
1723
1866
 
1724
1867
  </xsl:attribute-set> <!-- example-p-style -->
1725
1868
 
1869
+ <xsl:template name="refine_example-p-style">
1870
+
1871
+ </xsl:template> <!-- refine_example-p-style -->
1872
+
1726
1873
  <xsl:attribute-set name="termexample-name-style">
1727
1874
 
1728
1875
  <xsl:attribute name="font-family">IPAexGothic</xsl:attribute>
@@ -1751,6 +1898,12 @@
1751
1898
 
1752
1899
  </xsl:attribute-set> <!-- table-container-style -->
1753
1900
 
1901
+ <xsl:template name="refine_table-container-style">
1902
+ <xsl:param name="margin-side"/>
1903
+
1904
+ <!-- end table block-container attributes -->
1905
+ </xsl:template> <!-- refine_table-container-style -->
1906
+
1754
1907
  <xsl:attribute-set name="table-style">
1755
1908
  <xsl:attribute name="table-omit-footer-at-break">true</xsl:attribute>
1756
1909
  <xsl:attribute name="table-layout">fixed</xsl:attribute>
@@ -1759,6 +1912,17 @@
1759
1912
 
1760
1913
  </xsl:attribute-set><!-- table-style -->
1761
1914
 
1915
+ <xsl:template name="refine_table-style">
1916
+ <xsl:param name="margin-side"/>
1917
+
1918
+ <xsl:call-template name="setBordersTableArray"/>
1919
+
1920
+ <xsl:if test="ancestor::*[local-name()='preface']">
1921
+ <xsl:attribute name="border">none</xsl:attribute>
1922
+ </xsl:if>
1923
+
1924
+ </xsl:template> <!-- refine_table-style -->
1925
+
1762
1926
  <xsl:attribute-set name="table-name-style">
1763
1927
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
1764
1928
 
@@ -1768,6 +1932,11 @@
1768
1932
 
1769
1933
  </xsl:attribute-set> <!-- table-name-style -->
1770
1934
 
1935
+ <xsl:template name="refine_table-name-style">
1936
+ <xsl:param name="continued"/>
1937
+
1938
+ </xsl:template> <!-- refine_table-name-style -->
1939
+
1771
1940
  <xsl:attribute-set name="table-row-style">
1772
1941
  <xsl:attribute name="min-height">4mm</xsl:attribute>
1773
1942
 
@@ -1781,6 +1950,17 @@
1781
1950
 
1782
1951
  </xsl:attribute-set>
1783
1952
 
1953
+ <xsl:template name="refine_table-header-row-style">
1954
+
1955
+ <xsl:call-template name="setBordersTableArray"/>
1956
+
1957
+ <xsl:if test="ancestor::*[local-name() = 'preface']">
1958
+ <xsl:attribute name="border-top">none</xsl:attribute>
1959
+ <xsl:attribute name="border-bottom">none</xsl:attribute>
1960
+ </xsl:if>
1961
+
1962
+ </xsl:template> <!-- refine_table-header-row-style -->
1963
+
1784
1964
  <xsl:attribute-set name="table-footer-row-style" use-attribute-sets="table-row-style">
1785
1965
 
1786
1966
  <xsl:attribute name="border-left"><xsl:value-of select="$table-border"/></xsl:attribute>
@@ -1788,10 +1968,20 @@
1788
1968
 
1789
1969
  </xsl:attribute-set>
1790
1970
 
1971
+ <xsl:template name="refine_table-footer-row-style">
1972
+
1973
+ </xsl:template> <!-- refine_table-footer-row-style -->
1974
+
1791
1975
  <xsl:attribute-set name="table-body-row-style" use-attribute-sets="table-row-style">
1792
1976
 
1793
1977
  </xsl:attribute-set>
1794
1978
 
1979
+ <xsl:template name="refine_table-body-row-style">
1980
+
1981
+ <xsl:call-template name="setBordersTableArray"/>
1982
+
1983
+ </xsl:template> <!-- refine_table-body-row-style -->
1984
+
1795
1985
  <xsl:attribute-set name="table-header-cell-style">
1796
1986
  <xsl:attribute name="font-weight">bold</xsl:attribute>
1797
1987
  <xsl:attribute name="padding-left">1mm</xsl:attribute>
@@ -1805,6 +1995,24 @@
1805
1995
 
1806
1996
  </xsl:attribute-set> <!-- table-header-cell-style -->
1807
1997
 
1998
+ <xsl:template name="refine_table-header-cell-style">
1999
+
2000
+ <xsl:attribute name="text-align">center</xsl:attribute>
2001
+
2002
+ <xsl:call-template name="setBordersTableArray"/>
2003
+
2004
+ <xsl:if test="ancestor::*[local-name()='preface']">
2005
+ <xsl:attribute name="border">none</xsl:attribute>
2006
+ </xsl:if>
2007
+
2008
+ <xsl:if test="$lang = 'ar'">
2009
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
2010
+ </xsl:if>
2011
+
2012
+ <xsl:call-template name="setTableCellAttributes"/>
2013
+
2014
+ </xsl:template> <!-- refine_table-header-cell-style -->
2015
+
1808
2016
  <xsl:attribute-set name="table-cell-style">
1809
2017
  <xsl:attribute name="display-align">center</xsl:attribute>
1810
2018
  <xsl:attribute name="padding-left">1mm</xsl:attribute>
@@ -1815,6 +2023,22 @@
1815
2023
 
1816
2024
  </xsl:attribute-set> <!-- table-cell-style -->
1817
2025
 
2026
+ <xsl:template name="refine_table-cell-style">
2027
+
2028
+ <xsl:if test="$lang = 'ar'">
2029
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
2030
+ </xsl:if>
2031
+
2032
+ <!-- bsi -->
2033
+
2034
+ <xsl:call-template name="setBordersTableArray"/>
2035
+
2036
+ <xsl:if test="ancestor::*[local-name() = 'preface']">
2037
+ <xsl:attribute name="border">none</xsl:attribute>
2038
+ </xsl:if>
2039
+
2040
+ </xsl:template> <!-- refine_table-cell-style -->
2041
+
1818
2042
  <xsl:attribute-set name="table-footer-cell-style">
1819
2043
  <xsl:attribute name="border">solid black 1pt</xsl:attribute>
1820
2044
  <xsl:attribute name="padding-left">1mm</xsl:attribute>
@@ -1826,12 +2050,20 @@
1826
2050
 
1827
2051
  </xsl:attribute-set> <!-- table-footer-cell-style -->
1828
2052
 
2053
+ <xsl:template name="refine_table-footer-cell-style">
2054
+
2055
+ </xsl:template> <!-- refine_table-footer-cell-style -->
2056
+
1829
2057
  <xsl:attribute-set name="table-note-style">
1830
2058
  <xsl:attribute name="font-size">10pt</xsl:attribute>
1831
2059
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1832
2060
 
1833
2061
  </xsl:attribute-set><!-- table-note-style -->
1834
2062
 
2063
+ <xsl:template name="refine_table-note-style">
2064
+
2065
+ </xsl:template> <!-- refine_table-note-style -->
2066
+
1835
2067
  <xsl:attribute-set name="table-fn-style">
1836
2068
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1837
2069
 
@@ -1894,6 +2126,10 @@
1894
2126
 
1895
2127
  </xsl:attribute-set>
1896
2128
 
2129
+ <xsl:template name="refine_dt-cell-style">
2130
+
2131
+ </xsl:template> <!-- refine_dt-cell-style -->
2132
+
1897
2133
  <xsl:attribute-set name="dt-block-style">
1898
2134
  <xsl:attribute name="margin-top">0pt</xsl:attribute>
1899
2135
 
@@ -1901,6 +2137,10 @@
1901
2137
 
1902
2138
  </xsl:attribute-set>
1903
2139
 
2140
+ <xsl:template name="refine_dt-block-style">
2141
+
2142
+ </xsl:template> <!-- refine_dt-block-style -->
2143
+
1904
2144
  <xsl:attribute-set name="dl-name-style">
1905
2145
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
1906
2146
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
@@ -1912,6 +2152,10 @@
1912
2152
 
1913
2153
  </xsl:attribute-set>
1914
2154
 
2155
+ <xsl:template name="refine_dd-cell-style">
2156
+
2157
+ </xsl:template> <!-- refine_dd-cell-style -->
2158
+
1915
2159
  <!-- ========================== -->
1916
2160
  <!-- END Definition's list styles -->
1917
2161
  <!-- ========================== -->
@@ -1925,7 +2169,6 @@
1925
2169
  </xsl:attribute-set>
1926
2170
 
1927
2171
  <xsl:attribute-set name="xref-style">
1928
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
1929
2172
 
1930
2173
  <xsl:attribute name="font-family">IPAexGothic</xsl:attribute>
1931
2174
 
@@ -1935,6 +2178,12 @@
1935
2178
 
1936
2179
  </xsl:attribute-set>
1937
2180
 
2181
+ <xsl:template name="refine_eref-style">
2182
+ <xsl:variable name="citeas" select="java:replaceAll(java:java.lang.String.new(@citeas),'^\[?(.+?)\]?$','$1')"/> <!-- remove leading and trailing brackets -->
2183
+ <xsl:variable name="text" select="normalize-space()"/>
2184
+
2185
+ </xsl:template> <!-- refine_eref-style -->
2186
+
1938
2187
  <xsl:attribute-set name="note-style">
1939
2188
 
1940
2189
  <xsl:attribute name="text-indent">0mm</xsl:attribute>
@@ -1942,6 +2191,10 @@
1942
2191
 
1943
2192
  </xsl:attribute-set>
1944
2193
 
2194
+ <xsl:template name="refine_note-style">
2195
+
2196
+ </xsl:template>
2197
+
1945
2198
  <xsl:variable name="note-body-indent">10mm</xsl:variable>
1946
2199
  <xsl:variable name="note-body-indent-table">5mm</xsl:variable>
1947
2200
 
@@ -1951,11 +2204,19 @@
1951
2204
 
1952
2205
  </xsl:attribute-set>
1953
2206
 
2207
+ <xsl:template name="refine_note-name-style">
2208
+
2209
+ </xsl:template> <!-- refine_note-name-style -->
2210
+
1954
2211
  <xsl:attribute-set name="table-note-name-style">
1955
2212
  <xsl:attribute name="padding-right">2mm</xsl:attribute>
1956
2213
 
1957
2214
  </xsl:attribute-set>
1958
2215
 
2216
+ <xsl:template name="refine_table-note-name-style">
2217
+
2218
+ </xsl:template> <!-- refine_table-note-name-style -->
2219
+
1959
2220
  <xsl:attribute-set name="note-p-style">
1960
2221
 
1961
2222
  </xsl:attribute-set>
@@ -1968,12 +2229,20 @@
1968
2229
 
1969
2230
  </xsl:attribute-set>
1970
2231
 
2232
+ <xsl:template name="refine_termnote-style">
2233
+
2234
+ </xsl:template> <!-- refine_termnote-style -->
2235
+
1971
2236
  <xsl:attribute-set name="termnote-name-style">
1972
2237
 
1973
2238
  <xsl:attribute name="font-family">IPAexGothic</xsl:attribute>
1974
2239
 
1975
2240
  </xsl:attribute-set>
1976
2241
 
2242
+ <xsl:template name="refine_termnote-name-style">
2243
+
2244
+ </xsl:template>
2245
+
1977
2246
  <xsl:attribute-set name="termnote-p-style">
1978
2247
 
1979
2248
  </xsl:attribute-set>
@@ -1982,8 +2251,19 @@
1982
2251
  <xsl:attribute name="margin-left">12mm</xsl:attribute>
1983
2252
  <xsl:attribute name="margin-right">12mm</xsl:attribute>
1984
2253
 
2254
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2255
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2256
+
1985
2257
  </xsl:attribute-set>
1986
2258
 
2259
+ <xsl:template name="refine_quote-style">
2260
+
2261
+ <xsl:if test="ancestor::*[local-name() = 'li']">
2262
+ <xsl:attribute name="margin-left">7.5mm</xsl:attribute>
2263
+ </xsl:if>
2264
+
2265
+ </xsl:template>
2266
+
1987
2267
  <xsl:attribute-set name="quote-source-style">
1988
2268
  <xsl:attribute name="text-align">right</xsl:attribute>
1989
2269
 
@@ -1995,6 +2275,10 @@
1995
2275
 
1996
2276
  </xsl:attribute-set>
1997
2277
 
2278
+ <xsl:template name="refine_termsource-style">
2279
+
2280
+ </xsl:template> <!-- refine_termsource-style -->
2281
+
1998
2282
  <xsl:attribute-set name="termsource-text-style">
1999
2283
 
2000
2284
  </xsl:attribute-set>
@@ -2036,6 +2320,15 @@
2036
2320
 
2037
2321
  </xsl:attribute-set>
2038
2322
 
2323
+ <xsl:template name="refine_figure-name-style">
2324
+
2325
+ <xsl:if test="ancestor::jis:figure">
2326
+ <xsl:attribute name="margin-top">0</xsl:attribute>
2327
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2328
+ </xsl:if>
2329
+
2330
+ </xsl:template> <!-- refine_figure-name-style -->
2331
+
2039
2332
  <xsl:attribute-set name="figure-source-style">
2040
2333
 
2041
2334
  </xsl:attribute-set>
@@ -2052,6 +2345,10 @@
2052
2345
 
2053
2346
  </xsl:attribute-set> <!-- formula-stem-block-style -->
2054
2347
 
2348
+ <xsl:template name="refine_formula-stem-block-style">
2349
+
2350
+ </xsl:template> <!-- refine_formula-stem-block-style -->
2351
+
2055
2352
  <xsl:attribute-set name="formula-stem-number-style">
2056
2353
  <xsl:attribute name="text-align">right</xsl:attribute>
2057
2354
 
@@ -2063,6 +2360,10 @@
2063
2360
 
2064
2361
  </xsl:attribute-set>
2065
2362
 
2363
+ <xsl:template name="refine_image-style">
2364
+
2365
+ </xsl:template>
2366
+
2066
2367
  <xsl:attribute-set name="figure-pseudocode-p-style">
2067
2368
 
2068
2369
  </xsl:attribute-set>
@@ -2153,6 +2454,10 @@
2153
2454
 
2154
2455
  </xsl:attribute-set>
2155
2456
 
2457
+ <xsl:template name="refine_mathml-style">
2458
+
2459
+ </xsl:template>
2460
+
2156
2461
  <xsl:attribute-set name="list-style">
2157
2462
 
2158
2463
  <xsl:attribute name="provisional-distance-between-starts">7.5mm</xsl:attribute>
@@ -2160,6 +2465,10 @@
2160
2465
 
2161
2466
  </xsl:attribute-set> <!-- list-style -->
2162
2467
 
2468
+ <xsl:template name="refine_list-style">
2469
+
2470
+ </xsl:template> <!-- refine_list-style -->
2471
+
2163
2472
  <xsl:attribute-set name="list-name-style">
2164
2473
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
2165
2474
 
@@ -2169,16 +2478,33 @@
2169
2478
 
2170
2479
  </xsl:attribute-set>
2171
2480
 
2481
+ <xsl:template name="refine_list-item-style">
2482
+
2483
+ </xsl:template> <!-- refine_list-item-style -->
2484
+
2172
2485
  <xsl:attribute-set name="list-item-label-style">
2173
2486
 
2174
2487
  <xsl:attribute name="line-height">1.5</xsl:attribute>
2175
2488
 
2176
2489
  </xsl:attribute-set>
2177
2490
 
2491
+ <xsl:template name="refine_list-item-label-style">
2492
+
2493
+ <xsl:if test="parent::*[local-name() = 'ol']">
2494
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
2495
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2496
+ </xsl:if>
2497
+
2498
+ </xsl:template> <!-- refine_list-item-label-style -->
2499
+
2178
2500
  <xsl:attribute-set name="list-item-body-style">
2179
2501
 
2180
2502
  </xsl:attribute-set>
2181
2503
 
2504
+ <xsl:template name="refine_list-item-body-style">
2505
+
2506
+ </xsl:template> <!-- refine_list-item-body-style -->
2507
+
2182
2508
  <xsl:attribute-set name="toc-style">
2183
2509
  <xsl:attribute name="line-height">135%</xsl:attribute>
2184
2510
  </xsl:attribute-set>
@@ -2194,6 +2520,10 @@
2194
2520
 
2195
2521
  </xsl:attribute-set>
2196
2522
 
2523
+ <xsl:template name="refine_fn-reference-style">
2524
+
2525
+ </xsl:template> <!-- refine_fn-reference-style -->
2526
+
2197
2527
  <xsl:attribute-set name="fn-style">
2198
2528
  <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2199
2529
  </xsl:attribute-set>
@@ -2216,6 +2546,12 @@
2216
2546
 
2217
2547
  </xsl:attribute-set>
2218
2548
 
2549
+ <xsl:template name="refine_fn-body-style">
2550
+
2551
+ <xsl:attribute name="font-family">IPAexMincho</xsl:attribute> <!-- prevent font for footnote in Times New Roman main text -->
2552
+
2553
+ </xsl:template> <!-- refine_fn-body-style -->
2554
+
2219
2555
  <xsl:attribute-set name="fn-body-num-style">
2220
2556
  <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
2221
2557
 
@@ -2226,6 +2562,10 @@
2226
2562
 
2227
2563
  </xsl:attribute-set> <!-- fn-body-num-style -->
2228
2564
 
2565
+ <xsl:template name="refine_fn-body-num-style">
2566
+
2567
+ </xsl:template> <!-- refine_fn-body-num-style -->
2568
+
2229
2569
  <!-- admonition -->
2230
2570
  <xsl:attribute-set name="admonition-style">
2231
2571
 
@@ -2293,6 +2633,11 @@
2293
2633
  <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2294
2634
  <xsl:attribute name="font-size">65%</xsl:attribute>
2295
2635
 
2636
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
2637
+ <xsl:attribute name="font-size">67%</xsl:attribute>
2638
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2639
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
2640
+
2296
2641
  </xsl:attribute-set> <!-- bibitem-note-fn-style -->
2297
2642
 
2298
2643
  <!-- footnote number on the page bottom -->
@@ -2854,7 +3199,9 @@
2854
3199
 
2855
3200
  <fo:block-container xsl:use-attribute-sets="table-container-style">
2856
3201
 
2857
- <!-- end table block-container attributes -->
3202
+ <xsl:call-template name="refine_table-container-style">
3203
+ <xsl:with-param name="margin-side" select="$margin-side"/>
3204
+ </xsl:call-template>
2858
3205
 
2859
3206
  <!-- display table's name before table for PAS inside block-container (2-columnn layout) -->
2860
3207
 
@@ -2875,11 +3222,9 @@
2875
3222
 
2876
3223
  <xsl:attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></xsl:attribute>
2877
3224
 
2878
- <xsl:call-template name="setBordersTableArray"/>
2879
-
2880
- <xsl:if test="ancestor::*[local-name()='preface']">
2881
- <xsl:attribute name="border">none</xsl:attribute>
2882
- </xsl:if>
3225
+ <xsl:call-template name="refine_table-style">
3226
+ <xsl:with-param name="margin-side" select="$margin-side"/>
3227
+ </xsl:call-template>
2883
3228
 
2884
3229
  </xsl:element>
2885
3230
  </xsl:variable>
@@ -2901,7 +3246,7 @@
2901
3246
  </xsl:attribute>
2902
3247
  </xsl:for-each>
2903
3248
 
2904
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
3249
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
2905
3250
  <xsl:if test="$isNoteOrFnExist = 'true'">
2906
3251
  <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2907
3252
  </xsl:if>
@@ -2945,7 +3290,7 @@
2945
3290
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2946
3291
  </xsl:when>
2947
3292
  <xsl:otherwise>
2948
- <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'dl') and not(local-name() = 'source') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer, note, source and dl which render separaterely -->
3293
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'example') and not(local-name() = 'dl') and not(local-name() = 'source') and not(local-name() = 'p') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer, note, source and dl which render separaterely -->
2949
3294
  </xsl:otherwise>
2950
3295
  </xsl:choose>
2951
3296
 
@@ -3015,6 +3360,10 @@
3015
3360
 
3016
3361
  <fo:block xsl:use-attribute-sets="table-name-style">
3017
3362
 
3363
+ <xsl:call-template name="refine_table-name-style">
3364
+ <xsl:with-param name="continued" select="$continued"/>
3365
+ </xsl:call-template>
3366
+
3018
3367
  <xsl:choose>
3019
3368
  <xsl:when test="$continued = 'true'">
3020
3369
 
@@ -3397,6 +3746,8 @@
3397
3746
  <fo:table-row>
3398
3747
  <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
3399
3748
 
3749
+ <xsl:call-template name="refine_table-header-title-style"/>
3750
+
3400
3751
  <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
3401
3752
  <xsl:with-param name="continued">true</xsl:with-param>
3402
3753
  </xsl:apply-templates>
@@ -3409,6 +3760,10 @@
3409
3760
  </fo:table-row>
3410
3761
  </xsl:template> <!-- table-header-title -->
3411
3762
 
3763
+ <xsl:template name="refine_table-header-title-style">
3764
+
3765
+ </xsl:template> <!-- refine_table-header-title-style -->
3766
+
3412
3767
  <xsl:template match="*[local-name()='thead']" mode="process_tbody">
3413
3768
  <fo:table-body>
3414
3769
  <xsl:apply-templates/>
@@ -3433,7 +3788,7 @@
3433
3788
  <xsl:param name="colwidths"/>
3434
3789
  <xsl:param name="colgroup"/>
3435
3790
 
3436
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source']"/>
3791
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='example'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source'] or ../*[local-name()='p']"/>
3437
3792
 
3438
3793
  <xsl:variable name="isNoteOrFnExistShowAfterTable">
3439
3794
 
@@ -3493,6 +3848,8 @@
3493
3848
  <fo:table-row>
3494
3849
  <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
3495
3850
 
3851
+ <xsl:call-template name="refine_table-footer-cell-style"/>
3852
+
3496
3853
  <xsl:call-template name="setBordersTableArray"/>
3497
3854
 
3498
3855
  <!-- fn will be processed inside 'note' processing -->
@@ -3501,8 +3858,10 @@
3501
3858
 
3502
3859
  <!-- except gb and bsi -->
3503
3860
 
3861
+ <xsl:apply-templates select="../*[local-name()='p']"/>
3504
3862
  <xsl:apply-templates select="../*[local-name()='dl']"/>
3505
3863
  <xsl:apply-templates select="../*[local-name()='note']"/>
3864
+ <xsl:apply-templates select="../*[local-name()='example']"/>
3506
3865
  <xsl:apply-templates select="../*[local-name()='source']"/>
3507
3866
 
3508
3867
  <xsl:variable name="isDisplayRowSeparator">
@@ -3511,7 +3870,7 @@
3511
3870
 
3512
3871
  <!-- horizontal row separator -->
3513
3872
  <xsl:if test="normalize-space($isDisplayRowSeparator) = 'true'">
3514
- <xsl:if test="../*[local-name()='note'] and normalize-space($table_fn_block) != ''">
3873
+ <xsl:if test="(../*[local-name()='note'] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
3515
3874
  <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
3516
3875
 
3517
3876
  <xsl:call-template name="setBordersTableArray"/>
@@ -3632,12 +3991,7 @@
3632
3991
  <xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
3633
3992
  <fo:table-row xsl:use-attribute-sets="table-header-row-style">
3634
3993
 
3635
- <xsl:call-template name="setBordersTableArray"/>
3636
-
3637
- <xsl:if test="ancestor::*[local-name() = 'preface']">
3638
- <xsl:attribute name="border-top">none</xsl:attribute>
3639
- <xsl:attribute name="border-bottom">none</xsl:attribute>
3640
- </xsl:if>
3994
+ <xsl:call-template name="refine_table-header-row-style"/>
3641
3995
 
3642
3996
  <xsl:call-template name="setTableRowAttributes"/>
3643
3997
 
@@ -3671,6 +4025,8 @@
3671
4025
  <xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
3672
4026
  <fo:table-row xsl:use-attribute-sets="table-footer-row-style">
3673
4027
 
4028
+ <xsl:call-template name="refine_table-footer-row-style"/>
4029
+
3674
4030
  <xsl:call-template name="setTableRowAttributes"/>
3675
4031
  <xsl:apply-templates/>
3676
4032
  </fo:table-row>
@@ -3684,9 +4040,10 @@
3684
4040
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
3685
4041
  </xsl:if>
3686
4042
 
3687
- <xsl:call-template name="setBordersTableArray"/>
4043
+ <xsl:call-template name="refine_table-body-row-style"/>
3688
4044
 
3689
4045
  <xsl:call-template name="setTableRowAttributes"/>
4046
+
3690
4047
  <xsl:apply-templates/>
3691
4048
  </fo:table-row>
3692
4049
  </xsl:template>
@@ -3705,19 +4062,7 @@
3705
4062
  <xsl:with-param name="default">center</xsl:with-param>
3706
4063
  </xsl:call-template>
3707
4064
 
3708
- <xsl:attribute name="text-align">center</xsl:attribute>
3709
-
3710
- <xsl:call-template name="setBordersTableArray"/>
3711
-
3712
- <xsl:if test="ancestor::*[local-name()='preface']">
3713
- <xsl:attribute name="border">none</xsl:attribute>
3714
- </xsl:if>
3715
-
3716
- <xsl:if test="$lang = 'ar'">
3717
- <xsl:attribute name="padding-right">1mm</xsl:attribute>
3718
- </xsl:if>
3719
-
3720
- <xsl:call-template name="setTableCellAttributes"/>
4065
+ <xsl:call-template name="refine_table-header-cell-style"/>
3721
4066
 
3722
4067
  <fo:block>
3723
4068
  <xsl:apply-templates/>
@@ -3759,17 +4104,7 @@
3759
4104
  <xsl:with-param name="default">left</xsl:with-param>
3760
4105
  </xsl:call-template>
3761
4106
 
3762
- <xsl:if test="$lang = 'ar'">
3763
- <xsl:attribute name="padding-right">1mm</xsl:attribute>
3764
- </xsl:if>
3765
-
3766
- <!-- bsi -->
3767
-
3768
- <xsl:call-template name="setBordersTableArray"/>
3769
-
3770
- <xsl:if test="ancestor::*[local-name() = 'preface']">
3771
- <xsl:attribute name="border">none</xsl:attribute>
3772
- </xsl:if>
4107
+ <xsl:call-template name="refine_table-cell-style"/>
3773
4108
 
3774
4109
  <xsl:if test=".//*[local-name() = 'table']"> <!-- if there is nested table -->
3775
4110
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
@@ -3796,13 +4131,17 @@
3796
4131
  </fo:table-cell>
3797
4132
  </xsl:template> <!-- td -->
3798
4133
 
3799
- <xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2">
4134
+ <xsl:template match="*[local-name()='table']/*[local-name()='note' or local-name() = 'example']" priority="2">
3800
4135
 
3801
4136
  <fo:block xsl:use-attribute-sets="table-note-style">
3802
4137
 
3803
- <!-- Table's note name (NOTE, for example) -->
4138
+ <xsl:call-template name="refine_table-note-style"/>
4139
+
4140
+ <!-- Table's note/example name (NOTE, for example) -->
3804
4141
  <fo:inline xsl:use-attribute-sets="table-note-name-style">
3805
4142
 
4143
+ <xsl:call-template name="refine_table-note-name-style"/>
4144
+
3806
4145
  <xsl:apply-templates select="*[local-name() = 'name']"/>
3807
4146
 
3808
4147
  </fo:inline>
@@ -3812,7 +4151,7 @@
3812
4151
 
3813
4152
  </xsl:template> <!-- table/note -->
3814
4153
 
3815
- <xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" priority="2">
4154
+ <xsl:template match="*[local-name()='table']/*[local-name()='note' or local-name()='example']/*[local-name()='p']" priority="2">
3816
4155
  <xsl:apply-templates/>
3817
4156
  </xsl:template>
3818
4157
 
@@ -3830,6 +4169,14 @@
3830
4169
  <!-- list of footnotes to calculate actual footnotes number -->
3831
4170
  <xsl:variable name="p_fn_">
3832
4171
  <xsl:call-template name="get_fn_list"/>
4172
+ <!-- <xsl:choose>
4173
+ <xsl:when test="$namespace = 'jis'">
4174
+ <xsl:call-template name="get_fn_list_for_element"/>
4175
+ </xsl:when>
4176
+ <xsl:otherwise>
4177
+ <xsl:call-template name="get_fn_list"/>
4178
+ </xsl:otherwise>
4179
+ </xsl:choose> -->
3833
4180
  </xsl:variable>
3834
4181
  <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
3835
4182
 
@@ -3852,9 +4199,18 @@
3852
4199
  <xsl:variable name="current_fn_number_text">
3853
4200
  <xsl:value-of select="$current_fn_number"/>
3854
4201
 
4202
+ <fo:inline font-weight="normal">)</fo:inline>
4203
+
3855
4204
  </xsl:variable>
3856
4205
 
3857
- <xsl:variable name="ref_id" select="concat('footnote_', $lang, '_', $reference, '_', $current_fn_number)"/>
4206
+ <xsl:variable name="ref_id">
4207
+ <xsl:choose>
4208
+ <xsl:when test="normalize-space(@ref_id) != ''"><xsl:value-of select="@ref_id"/></xsl:when>
4209
+ <xsl:otherwise>
4210
+ <xsl:value-of select="concat('footnote_', $lang, '_', $reference, '_', $current_fn_number)"/>
4211
+ </xsl:otherwise>
4212
+ </xsl:choose>
4213
+ </xsl:variable>
3858
4214
  <xsl:variable name="footnote_inline">
3859
4215
  <fo:inline>
3860
4216
 
@@ -3880,7 +4236,7 @@
3880
4236
  <xsl:call-template name="insert_basic_link">
3881
4237
  <xsl:with-param name="element">
3882
4238
  <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
3883
- <xsl:value-of select="$current_fn_number_text"/>
4239
+ <xsl:copy-of select="$current_fn_number_text"/>
3884
4240
  </fo:basic-link>
3885
4241
  </xsl:with-param>
3886
4242
  </xsl:call-template>
@@ -3900,8 +4256,12 @@
3900
4256
 
3901
4257
  <fo:block xsl:use-attribute-sets="fn-body-style">
3902
4258
 
4259
+ <xsl:call-template name="refine_fn-body-style"/>
4260
+
3903
4261
  <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style">
3904
4262
 
4263
+ <xsl:call-template name="refine_fn-body-num-style"/>
4264
+
3905
4265
  <xsl:value-of select="$current_fn_number_text"/>
3906
4266
  </fo:inline>
3907
4267
  <xsl:apply-templates/>
@@ -3953,6 +4313,28 @@
3953
4313
  </xsl:choose>
3954
4314
  </xsl:template>
3955
4315
 
4316
+ <xsl:template name="get_fn_list_for_element">
4317
+ <xsl:choose>
4318
+ <xsl:when test="@current_fn_number"> <!-- footnote reference number calculated already -->
4319
+ <fn gen_id="{generate-id(.)}">
4320
+ <xsl:copy-of select="@*"/>
4321
+ <xsl:copy-of select="node()"/>
4322
+ </fn>
4323
+ </xsl:when>
4324
+ <xsl:otherwise>
4325
+ <xsl:for-each select="ancestor::*[local-name() = 'ul' or local-name() = 'ol'][1]">
4326
+ <xsl:variable name="element_id" select="@id"/>
4327
+ <xsl:for-each select=".//*[local-name() = 'fn'][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
4328
+ <!-- copy unique fn -->
4329
+ <fn gen_id="{generate-id(.)}">
4330
+ <xsl:copy-of select="@*"/>
4331
+ <xsl:copy-of select="node()"/>
4332
+ </fn>
4333
+ </xsl:for-each>
4334
+ </xsl:for-each>
4335
+ </xsl:otherwise>
4336
+ </xsl:choose>
4337
+ </xsl:template>
3956
4338
  <!-- ============================ -->
3957
4339
  <!-- table's footnotes rendering -->
3958
4340
  <!-- ============================ -->
@@ -4139,6 +4521,8 @@
4139
4521
  <xsl:template match="*[local-name()='fn']">
4140
4522
  <fo:inline xsl:use-attribute-sets="fn-reference-style">
4141
4523
 
4524
+ <xsl:call-template name="refine_fn-reference-style"/>
4525
+
4142
4526
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
4143
4527
 
4144
4528
  <xsl:value-of select="@reference"/>
@@ -4240,6 +4624,8 @@
4240
4624
  <xsl:when test="$parent = 'formula'"> <!-- a few components -->
4241
4625
  <fo:block margin-bottom="12pt" text-align="left">
4242
4626
 
4627
+ <xsl:call-template name="refine_dl_formula_where_style"/>
4628
+
4243
4629
  <!-- <xsl:variable name="title-where">
4244
4630
  <xsl:call-template name="getLocalizedString">
4245
4631
  <xsl:with-param name="key">where</xsl:with-param>
@@ -4253,6 +4639,8 @@
4253
4639
  <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')"> <!-- definition list in a figure -->
4254
4640
  <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
4255
4641
 
4642
+ <xsl:call-template name="refine_figure_key_style"/>
4643
+
4256
4644
  <xsl:variable name="title-key">
4257
4645
  <xsl:call-template name="getLocalizedString">
4258
4646
  <xsl:with-param name="key">key</xsl:with-param>
@@ -4267,12 +4655,16 @@
4267
4655
  <xsl:if test="$onlyOneComponent = 'false'">
4268
4656
  <fo:block>
4269
4657
 
4658
+ <xsl:call-template name="refine_multicomponent_style"/>
4659
+
4270
4660
  <xsl:if test="ancestor::*[local-name() = 'dd' or local-name() = 'td']">
4271
4661
  <xsl:attribute name="margin-top">0</xsl:attribute>
4272
4662
  </xsl:if>
4273
4663
 
4274
4664
  <fo:block>
4275
4665
 
4666
+ <xsl:call-template name="refine_multicomponent_block_style"/>
4667
+
4276
4668
  <xsl:apply-templates select="*[local-name() = 'name']">
4277
4669
  <xsl:with-param name="process">true</xsl:with-param>
4278
4670
  </xsl:apply-templates>
@@ -4430,6 +4822,24 @@
4430
4822
 
4431
4823
  </xsl:template> <!-- END: dl -->
4432
4824
 
4825
+ <xsl:template name="refine_dl_formula_where_style">
4826
+
4827
+ </xsl:template> <!-- refine_dl_formula_where_style -->
4828
+
4829
+ <xsl:template name="refine_figure_key_style">
4830
+
4831
+ </xsl:template> <!-- refine_figure_key_style -->
4832
+
4833
+ <xsl:template name="refine_multicomponent_style">
4834
+ <xsl:variable name="parent" select="local-name(..)"/>
4835
+
4836
+ </xsl:template> <!-- refine_multicomponent_style -->
4837
+
4838
+ <xsl:template name="refine_multicomponent_block_style">
4839
+ <xsl:variable name="parent" select="local-name(..)"/>
4840
+
4841
+ </xsl:template> <!-- refine_multicomponent_block_style -->
4842
+
4433
4843
  <!-- ignore 'p' with 'where' in formula, before 'dl' -->
4434
4844
  <xsl:template match="*[local-name() = 'formula']/*[local-name() = 'p' and @keep-with-next = 'true' and following-sibling::*[1][local-name() = 'dl']]"/>
4435
4845
 
@@ -4649,6 +5059,8 @@
4649
5059
 
4650
5060
  </xsl:if>
4651
5061
 
5062
+ <xsl:call-template name="refine_dt-cell-style"/>
5063
+
4652
5064
  <fo:block xsl:use-attribute-sets="dt-block-style">
4653
5065
  <xsl:copy-of select="@id"/>
4654
5066
 
@@ -4656,6 +5068,8 @@
4656
5068
  <xsl:attribute name="margin-top">0</xsl:attribute>
4657
5069
  </xsl:if>
4658
5070
 
5071
+ <xsl:call-template name="refine_dt-block-style"/>
5072
+
4659
5073
  <xsl:apply-templates>
4660
5074
  <xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
4661
5075
  </xsl:apply-templates>
@@ -4675,6 +5089,8 @@
4675
5089
  <xsl:attribute name="border">0.1pt solid black</xsl:attribute>
4676
5090
  </xsl:if>
4677
5091
 
5092
+ <xsl:call-template name="refine_dd-cell-style"/>
5093
+
4678
5094
  <fo:block>
4679
5095
 
4680
5096
  <xsl:if test="$isGenerateTableIF = 'true'">
@@ -4817,15 +5233,20 @@
4817
5233
  <!-- ========================= -->
4818
5234
  <xsl:template match="*[local-name()='em']">
4819
5235
  <fo:inline font-style="italic">
5236
+ <xsl:call-template name="refine_italic_style"/>
4820
5237
  <xsl:apply-templates/>
4821
5238
  </fo:inline>
4822
5239
  </xsl:template>
4823
5240
 
5241
+ <xsl:template name="refine_italic_style">
5242
+
5243
+ </xsl:template>
5244
+
4824
5245
  <xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
4825
5246
  <xsl:param name="split_keep-within-line"/>
4826
5247
  <fo:inline font-weight="bold">
4827
5248
 
4828
- <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
5249
+ <xsl:call-template name="refine_strong_style"/>
4829
5250
 
4830
5251
  <xsl:apply-templates>
4831
5252
  <xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
@@ -4833,6 +5254,12 @@
4833
5254
  </fo:inline>
4834
5255
  </xsl:template>
4835
5256
 
5257
+ <xsl:template name="refine_strong_style">
5258
+
5259
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
5260
+
5261
+ </xsl:template>
5262
+
4836
5263
  <xsl:template match="*[local-name()='padding']">
4837
5264
  <fo:inline padding-right="{@value}"> </fo:inline>
4838
5265
  </xsl:template>
@@ -5303,7 +5730,10 @@
5303
5730
  </xsl:choose>
5304
5731
  </xsl:variable>
5305
5732
 
5306
- <xsl:value-of select="$text9"/>
5733
+ <!-- replace sequence #x200B and space TO space -->
5734
+ <xsl:variable name="text10" select="java:replaceAll(java:java.lang.String.new($text9), '\u200b ', ' ')"/>
5735
+
5736
+ <xsl:value-of select="$text10"/>
5307
5737
  </xsl:template>
5308
5738
 
5309
5739
  <xsl:template name="add-zero-spaces-link-java">
@@ -5978,6 +6408,11 @@
5978
6408
 
5979
6409
  <fo:inline xsl:use-attribute-sets="mathml-style">
5980
6410
 
6411
+ <!-- DEBUG -->
6412
+ <!-- <xsl:copy-of select="ancestor::*[local-name() = 'stem']/@font-family"/> -->
6413
+
6414
+ <xsl:call-template name="refine_mathml-style"/>
6415
+
5981
6416
  <xsl:if test="$isGenerateTableIF = 'true' and ancestor::*[local-name() = 'td' or local-name() = 'th' or local-name() = 'dl'] and not(following-sibling::node()[not(self::comment())][normalize-space() != ''])"> <!-- math in table cell, and math is last element -->
5982
6417
  <!-- <xsl:attribute name="padding-right">1mm</xsl:attribute> -->
5983
6418
  </xsl:if>
@@ -6082,6 +6517,8 @@
6082
6517
 
6083
6518
  <fo:instream-foreign-object fox:alt-text="Math">
6084
6519
 
6520
+ <xsl:call-template name="refine_mathml_insteam_object_style"/>
6521
+
6085
6522
  <!-- put MathML in Actual Text -->
6086
6523
  <!-- DEBUG: mathml_content=<xsl:value-of select="$mathml_content"/> -->
6087
6524
  <xsl:attribute name="fox:actual-text">
@@ -6102,6 +6539,10 @@
6102
6539
  </fo:instream-foreign-object>
6103
6540
  </xsl:template>
6104
6541
 
6542
+ <xsl:template name="refine_mathml_insteam_object_style">
6543
+
6544
+ </xsl:template> <!-- refine_mathml_insteam_object_style -->
6545
+
6105
6546
  <xsl:template match="mathml:*" mode="mathml_actual_text">
6106
6547
  <!-- <xsl:text>a+b</xsl:text> -->
6107
6548
  <xsl:text>&lt;</xsl:text>
@@ -6246,6 +6687,8 @@
6246
6687
  <xsl:template match="*[local-name() = 'stem'][@type = 'AsciiMath'][count(*) = 0]/text() | *[local-name() = 'stem'][@type = 'AsciiMath'][*[local-name() = 'asciimath']]" priority="3">
6247
6688
  <fo:inline xsl:use-attribute-sets="mathml-style">
6248
6689
 
6690
+ <xsl:call-template name="refine_mathml-style"/>
6691
+
6249
6692
  <xsl:choose>
6250
6693
  <xsl:when test="self::text()"><xsl:value-of select="."/></xsl:when>
6251
6694
  <xsl:otherwise>
@@ -6290,6 +6733,8 @@
6290
6733
  <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6291
6734
  </xsl:if>
6292
6735
 
6736
+ <xsl:call-template name="refine_link-style"/>
6737
+
6293
6738
  <xsl:choose>
6294
6739
  <xsl:when test="$target_text = ''">
6295
6740
  <xsl:apply-templates/>
@@ -6377,6 +6822,9 @@
6377
6822
  <xsl:call-template name="insert_basic_link">
6378
6823
  <xsl:with-param name="element">
6379
6824
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
6825
+ <xsl:if test="string-length(normalize-space()) &lt; 30 and not(contains(normalize-space(), 'http://')) and not(contains(normalize-space(), 'https://')) and not(ancestor::*[local-name() = 'table' or local-name() = 'dl'])">
6826
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6827
+ </xsl:if>
6380
6828
  <xsl:if test="parent::*[local-name() = 'add']">
6381
6829
  <xsl:call-template name="append_add-style"/>
6382
6830
  </xsl:if>
@@ -6438,6 +6886,8 @@
6438
6886
  <fo:table-cell display-align="center">
6439
6887
  <fo:block xsl:use-attribute-sets="formula-stem-block-style">
6440
6888
 
6889
+ <xsl:call-template name="refine_formula-stem-block-style"/>
6890
+
6441
6891
  <xsl:apply-templates/>
6442
6892
  </fo:block>
6443
6893
  </fo:table-cell>
@@ -6479,6 +6929,8 @@
6479
6929
 
6480
6930
  <xsl:call-template name="setBlockSpanAll"/>
6481
6931
 
6932
+ <xsl:call-template name="refine_note-style"/>
6933
+
6482
6934
  <fo:block-container margin-left="0mm" margin-right="0mm">
6483
6935
 
6484
6936
  <fo:list-block>
@@ -6509,6 +6961,10 @@
6509
6961
 
6510
6962
  </xsl:template>
6511
6963
 
6964
+ <xsl:template name="refine_note_block_style">
6965
+
6966
+ </xsl:template>
6967
+
6512
6968
  <xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
6513
6969
  <xsl:variable name="num"><xsl:number/></xsl:variable>
6514
6970
  <xsl:choose>
@@ -6530,12 +6986,16 @@
6530
6986
 
6531
6987
  <xsl:call-template name="setBlockSpanAll"/>
6532
6988
 
6989
+ <xsl:call-template name="refine_termnote-style"/>
6990
+
6533
6991
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
6534
6992
 
6535
6993
  <xsl:if test="not(*[local-name() = 'name']/following-sibling::node()[1][self::text()][normalize-space()=''])">
6536
6994
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
6537
6995
  </xsl:if>
6538
6996
 
6997
+ <xsl:call-template name="refine_termnote-name-style"/>
6998
+
6539
6999
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
6540
7000
  <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
6541
7001
  <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
@@ -6705,6 +7165,8 @@
6705
7165
  <xsl:otherwise>
6706
7166
  <fo:block xsl:use-attribute-sets="image-style">
6707
7167
 
7168
+ <xsl:call-template name="refine_image-style"/>
7169
+
6708
7170
  <xsl:variable name="src">
6709
7171
  <xsl:call-template name="image_src"/>
6710
7172
  </xsl:variable>
@@ -7554,10 +8016,7 @@
7554
8016
  <xsl:if test="normalize-space() != ''">
7555
8017
  <fo:block xsl:use-attribute-sets="figure-name-style">
7556
8018
 
7557
- <xsl:if test="ancestor::jis:figure">
7558
- <xsl:attribute name="margin-top">0</xsl:attribute>
7559
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
7560
- </xsl:if>
8019
+ <xsl:call-template name="refine_figure-name-style"/>
7561
8020
 
7562
8021
  <xsl:apply-templates/>
7563
8022
  </fo:block>
@@ -7822,6 +8281,8 @@
7822
8281
  </xsl:attribute>
7823
8282
  </xsl:for-each>
7824
8283
 
8284
+ <xsl:call-template name="refine_sourcecode-style"/>
8285
+
7825
8286
  <!-- remove margin between rows in the table with sourcecode line numbers -->
7826
8287
  <xsl:if test="ancestor::*[local-name() = 'sourcecode'][@linenums = 'true'] and ancestor::*[local-name() = 'tr'][1]/following-sibling::*[local-name() = 'tr']">
7827
8288
  <xsl:attribute name="margin-top">0pt</xsl:attribute>
@@ -8526,6 +8987,8 @@
8526
8987
 
8527
8988
  <xsl:call-template name="setBlockSpanAll"/>
8528
8989
 
8990
+ <xsl:call-template name="refine_example-style"/>
8991
+
8529
8992
  <xsl:variable name="fo_element">
8530
8993
  <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl'] or *[not(local-name() = 'name')][1][local-name() = 'sourcecode']">block</xsl:if>
8531
8994
  list
@@ -8636,6 +9099,12 @@
8636
9099
 
8637
9100
  </xsl:template>
8638
9101
 
9102
+ <xsl:template match="*[local-name() = 'table']/*[local-name() = 'example']/*[local-name() = 'name']">
9103
+ <fo:inline xsl:use-attribute-sets="example-name-style">
9104
+ <xsl:apply-templates/>
9105
+ </fo:inline>
9106
+ </xsl:template>
9107
+
8639
9108
  <xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
8640
9109
  <xsl:param name="fo_element">block</xsl:param>
8641
9110
 
@@ -8653,6 +9122,8 @@
8653
9122
  </xsl:if>
8654
9123
  <fo:block xsl:use-attribute-sets="example-p-style">
8655
9124
 
9125
+ <xsl:call-template name="refine_example-p-style"/>
9126
+
8656
9127
  <xsl:apply-templates/>
8657
9128
  </fo:block>
8658
9129
  </fo:block-container>
@@ -8669,6 +9140,7 @@
8669
9140
  </xsl:otherwise>
8670
9141
  </xsl:choose>
8671
9142
  </xsl:template> <!-- example/p -->
9143
+
8672
9144
  <!-- ====== -->
8673
9145
  <!-- ====== -->
8674
9146
 
@@ -8680,6 +9152,8 @@
8680
9152
  <xsl:template match="*[local-name() = 'termsource']" name="termsource">
8681
9153
  <fo:block xsl:use-attribute-sets="termsource-style">
8682
9154
 
9155
+ <xsl:call-template name="refine_termsource-style"/>
9156
+
8683
9157
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
8684
9158
  <xsl:variable name="termsource_text">
8685
9159
  <xsl:apply-templates/>
@@ -8795,6 +9269,8 @@
8795
9269
  <fo:block-container margin-left="0mm">
8796
9270
  <fo:block-container xsl:use-attribute-sets="quote-style">
8797
9271
 
9272
+ <xsl:call-template name="refine_quote-style"/>
9273
+
8798
9274
  <fo:block-container margin-left="0mm" margin-right="0mm">
8799
9275
  <fo:block role="BlockQuote">
8800
9276
  <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
@@ -8809,6 +9285,11 @@
8809
9285
  </fo:block>
8810
9286
  </xsl:if>
8811
9287
 
9288
+ <!-- render footnotes after references -->
9289
+ <xsl:apply-templates select=".//jis:fn[generate-id(.)=generate-id(key('kfn',@reference)[1])]" mode="fn_after_element">
9290
+ <xsl:with-param name="ancestor">quote</xsl:with-param>
9291
+ </xsl:apply-templates>
9292
+
8812
9293
  </fo:block-container>
8813
9294
  </fo:block-container>
8814
9295
  </xsl:template>
@@ -8869,8 +9350,7 @@
8869
9350
 
8870
9351
  </xsl:if>
8871
9352
 
8872
- <xsl:variable name="citeas" select="java:replaceAll(java:java.lang.String.new(@citeas),'^\[?(.+?)\]?$','$1')"/> <!-- remove leading and trailing brackets -->
8873
- <xsl:variable name="text" select="normalize-space()"/>
9353
+ <xsl:call-template name="refine_eref-style"/>
8874
9354
 
8875
9355
  <xsl:call-template name="insert_basic_link">
8876
9356
  <xsl:with-param name="element">
@@ -8880,6 +9360,8 @@
8880
9360
  </xsl:if>
8881
9361
  <xsl:if test="@type = 'inline'">
8882
9362
 
9363
+ <xsl:call-template name="refine_basic_link_style"/>
9364
+
8883
9365
  </xsl:if>
8884
9366
 
8885
9367
  <xsl:choose>
@@ -8912,6 +9394,11 @@
8912
9394
  </xsl:otherwise>
8913
9395
  </xsl:choose>
8914
9396
  </xsl:template>
9397
+
9398
+ <xsl:template name="refine_basic_link_style">
9399
+
9400
+ </xsl:template> <!-- refine_basic_link_style -->
9401
+
8915
9402
  <!-- ====== -->
8916
9403
  <!-- END eref -->
8917
9404
  <!-- ====== -->
@@ -9049,11 +9536,17 @@
9049
9536
  <fo:block>
9050
9537
  <xsl:call-template name="setId"/>
9051
9538
 
9539
+ <xsl:call-template name="sections_element_style"/>
9540
+
9052
9541
  <xsl:apply-templates/>
9053
9542
  </fo:block>
9054
9543
 
9055
9544
  </xsl:template>
9056
9545
 
9546
+ <xsl:template name="sections_element_style">
9547
+
9548
+ </xsl:template> <!-- sections_element_style -->
9549
+
9057
9550
  <xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
9058
9551
  <fo:block break-after="page"/>
9059
9552
  <fo:block>
@@ -9068,10 +9561,16 @@
9068
9561
 
9069
9562
  <xsl:call-template name="setBlockSpanAll"/>
9070
9563
 
9564
+ <xsl:call-template name="refine_clause_style"/>
9565
+
9071
9566
  <xsl:apply-templates/>
9072
9567
  </fo:block>
9073
9568
  </xsl:template>
9074
9569
 
9570
+ <xsl:template name="refine_clause_style">
9571
+
9572
+ </xsl:template> <!-- refine_clause_style -->
9573
+
9075
9574
  <xsl:template match="*[local-name() = 'definitions']">
9076
9575
  <fo:block id="{@id}">
9077
9576
  <xsl:apply-templates/>
@@ -9084,10 +9583,16 @@
9084
9583
 
9085
9584
  <xsl:call-template name="setBlockSpanAll"/>
9086
9585
 
9586
+ <xsl:call-template name="refine_annex_style"/>
9587
+
9087
9588
  </fo:block>
9088
9589
  <xsl:apply-templates/>
9089
9590
  </xsl:template>
9090
9591
 
9592
+ <xsl:template name="refine_annex_style">
9593
+
9594
+ </xsl:template>
9595
+
9091
9596
  <xsl:template match="*[local-name() = 'review']"> <!-- 'review' will be processed in mn2pdf/review.xsl -->
9092
9597
  <!-- comment 2019-11-29 -->
9093
9598
  <!-- <fo:block font-weight="bold">Review:</fo:block>
@@ -9165,6 +9670,9 @@
9165
9670
  <xsl:otherwise><xsl:call-template name="setULLabel"/></xsl:otherwise>
9166
9671
  </xsl:choose>
9167
9672
  </xsl:when>
9673
+ <xsl:when test="local-name(..) = 'ol' and @label"> <!-- for ordered lists 'ol', and if there is @label, for instance label="1.1.2" -->
9674
+ <xsl:value-of select="@label"/>
9675
+ </xsl:when>
9168
9676
  <xsl:otherwise> <!-- for ordered lists 'ol' -->
9169
9677
 
9170
9678
  <!-- Example: for BSI <?list-start 2?> -->
@@ -9222,10 +9730,10 @@
9222
9730
  <xsl:when test="$type = 'arabic'">
9223
9731
  1)
9224
9732
  </xsl:when>
9225
- <xsl:when test="$type = 'alphabet'">
9733
+ <xsl:when test="$type = 'alphabet' or $type = 'alphabetic'">
9226
9734
  a)
9227
9735
  </xsl:when>
9228
- <xsl:when test="$type = 'alphabet_upper'">
9736
+ <xsl:when test="$type = 'alphabet_upper' or $type = 'alphabetic_upper'">
9229
9737
  A.
9230
9738
  </xsl:when>
9231
9739
  <xsl:when test="$type = 'roman'">
@@ -9253,6 +9761,8 @@
9253
9761
  </xsl:choose>
9254
9762
  </xsl:attribute>
9255
9763
 
9764
+ <xsl:call-template name="refine_list_container_style"/>
9765
+
9256
9766
  <fo:block-container margin-left="0mm">
9257
9767
  <fo:block>
9258
9768
  <xsl:apply-templates select="." mode="list"/>
@@ -9277,6 +9787,10 @@
9277
9787
  </xsl:choose>
9278
9788
  </xsl:template>
9279
9789
 
9790
+ <xsl:template name="refine_list_container_style">
9791
+
9792
+ </xsl:template> <!-- refine_list_container_style -->
9793
+
9280
9794
  <xsl:template match="*[local-name()='ul'] | *[local-name()='ol']" mode="list" name="list">
9281
9795
 
9282
9796
  <xsl:apply-templates select="*[local-name() = 'name']">
@@ -9287,7 +9801,7 @@
9287
9801
 
9288
9802
  <xsl:variable name="provisional_distance_between_starts_">
9289
9803
  <attributes xsl:use-attribute-sets="list-style">
9290
-
9804
+ <xsl:call-template name="refine_list-style_provisional-distance-between-starts"/>
9291
9805
  </attributes>
9292
9806
  </xsl:variable>
9293
9807
  <xsl:variable name="provisional_distance_between_starts" select="normalize-space(xalan:nodeset($provisional_distance_between_starts_)/attributes/@provisional-distance-between-starts)"/>
@@ -9323,6 +9837,8 @@
9323
9837
  <addon><xsl:value-of select="$addon"/></addon> -->
9324
9838
  </xsl:if>
9325
9839
 
9840
+ <xsl:call-template name="refine_list-style"/>
9841
+
9326
9842
  <xsl:if test="*[local-name() = 'name']">
9327
9843
  <xsl:attribute name="margin-top">0pt</xsl:attribute>
9328
9844
  </xsl:if>
@@ -9335,6 +9851,10 @@
9335
9851
  <xsl:apply-templates select="./*[local-name() = 'note']"/>
9336
9852
  </xsl:template>
9337
9853
 
9854
+ <xsl:template name="refine_list-style_provisional-distance-between-starts">
9855
+
9856
+ </xsl:template> <!-- refine_list-style_provisional-distance-between-starts -->
9857
+
9338
9858
  <xsl:template match="*[local-name() = 'ol' or local-name() = 'ul']/*[local-name() = 'name']">
9339
9859
  <xsl:param name="process">false</xsl:param>
9340
9860
  <xsl:if test="$process = 'true'">
@@ -9348,13 +9868,12 @@
9348
9868
  <fo:list-item xsl:use-attribute-sets="list-item-style">
9349
9869
  <xsl:copy-of select="@id"/>
9350
9870
 
9871
+ <xsl:call-template name="refine_list-item-style"/>
9872
+
9351
9873
  <fo:list-item-label end-indent="label-end()">
9352
9874
  <fo:block xsl:use-attribute-sets="list-item-label-style">
9353
9875
 
9354
- <xsl:if test="parent::*[local-name() = 'ol']">
9355
- <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
9356
- <xsl:attribute name="font-weight">bold</xsl:attribute>
9357
- </xsl:if>
9876
+ <xsl:call-template name="refine_list-item-label-style"/>
9358
9877
 
9359
9878
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
9360
9879
  <xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
@@ -9362,11 +9881,14 @@
9362
9881
  </xsl:if>
9363
9882
 
9364
9883
  <xsl:call-template name="getListItemFormat"/>
9884
+
9365
9885
  </fo:block>
9366
9886
  </fo:list-item-label>
9367
9887
  <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
9368
9888
  <fo:block>
9369
9889
 
9890
+ <xsl:call-template name="refine_list-item-body-style"/>
9891
+
9370
9892
  <xsl:apply-templates/>
9371
9893
 
9372
9894
  <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
@@ -9684,6 +10206,12 @@
9684
10206
 
9685
10207
  <fo:block id="{@id}">
9686
10208
  <xsl:apply-templates/>
10209
+
10210
+ <!-- render footnotes after references -->
10211
+ <xsl:apply-templates select=".//jis:fn[generate-id(.)=generate-id(key('kfn',@reference)[1])]" mode="fn_after_element">
10212
+ <xsl:with-param name="ancestor">references</xsl:with-param>
10213
+ </xsl:apply-templates>
10214
+
9687
10215
  </fo:block>
9688
10216
  </xsl:template>
9689
10217
 
@@ -9703,6 +10231,12 @@
9703
10231
 
9704
10232
  <fo:block id="{@id}" xsl:use-attribute-sets="references-non-normative-style">
9705
10233
  <xsl:apply-templates/>
10234
+
10235
+ <!-- render footnotes after references -->
10236
+ <xsl:apply-templates select=".//jis:fn[generate-id(.)=generate-id(key('kfn',@reference)[1])]" mode="fn_after_element">
10237
+ <xsl:with-param name="ancestor">references</xsl:with-param>
10238
+ </xsl:apply-templates>
10239
+
9706
10240
  </fo:block>
9707
10241
 
9708
10242
  </xsl:template> <!-- references -->
@@ -10283,6 +10817,9 @@
10283
10817
  </xsl:copy>
10284
10818
  </xsl:template>
10285
10819
 
10820
+ <!-- prevent empty thead processing in XSL-FO, remove it -->
10821
+ <xsl:template match="*[local-name() = 'table']/*[local-name() = 'thead'][count(*) = 0]" mode="update_xml_step1"/>
10822
+
10286
10823
  <xsl:template name="add_id">
10287
10824
  <xsl:if test="not(@id)">
10288
10825
  <!-- add @id - first element with @id plus '_element_name' -->
@@ -10671,6 +11208,14 @@
10671
11208
  <xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure')] and not(ancestor::*[local-name() = 'name']))]" mode="linear_xml" name="linear_xml_fn">
10672
11209
  <xsl:variable name="p_fn_">
10673
11210
  <xsl:call-template name="get_fn_list"/>
11211
+ <!-- <xsl:choose>
11212
+ <xsl:when test="$namespace = 'jis'">
11213
+ <xsl:call-template name="get_fn_list_for_element"/>
11214
+ </xsl:when>
11215
+ <xsl:otherwise>
11216
+ <xsl:call-template name="get_fn_list"/>
11217
+ </xsl:otherwise>
11218
+ </xsl:choose> -->
10674
11219
  </xsl:variable>
10675
11220
  <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
10676
11221
  <xsl:variable name="gen_id" select="generate-id(.)"/>
@@ -10685,8 +11230,17 @@
10685
11230
  <xsl:attribute name="current_fn_number">
10686
11231
  <xsl:value-of select="$current_fn_number"/>
10687
11232
  </xsl:attribute>
11233
+ <xsl:variable name="skip_footnote_body_" select="not($p_fn//fn[@gen_id = $gen_id] and (1 = 1))"/>
10688
11234
  <xsl:attribute name="skip_footnote_body"> <!-- false for repeatable footnote -->
10689
- <xsl:value-of select="not($p_fn//fn[@gen_id = $gen_id] and (1 = 1))"/>
11235
+
11236
+ <xsl:choose>
11237
+ <xsl:when test="ancestor::*[local-name() = 'ul' or local-name() ='ol' or local-name() = 'bibitem' or local-name() = 'quote']">true</xsl:when>
11238
+ <xsl:otherwise><xsl:value-of select="$skip_footnote_body_"/></xsl:otherwise>
11239
+ </xsl:choose>
11240
+
11241
+ </xsl:attribute>
11242
+ <xsl:attribute name="ref_id">
11243
+ <xsl:value-of select="concat('footnote_', $lang, '_', $reference, '_', $current_fn_number)"/>
10690
11244
  </xsl:attribute>
10691
11245
  <xsl:apply-templates select="node()" mode="linear_xml"/>
10692
11246
  </xsl:copy>