Skip to content

Commit bba4977

Browse files
Merge pull request #802 from metanorma/jis_update
JIS update for surrogate pair
2 parents 6067ad4 + bf819a0 commit bba4977

File tree

2 files changed

+86
-57
lines changed

2 files changed

+86
-57
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ XSLT_GENERATED := xslt/iec.international-standard.xsl \
8181
xslt/bipm.rapport.xsl \
8282
xslt/jcgm.standard.xsl
8383

84-
MN2PDF_DOWNLOAD_PATH := https://github.com/metanorma/mn2pdf/releases/download/v2.12/mn2pdf-2.12.jar
84+
MN2PDF_DOWNLOAD_PATH := https://github.com/metanorma/mn2pdf/releases/download/v2.13/mn2pdf-2.13.jar
8585
# MN2PDF_DOWNLOAD_PATH := https://maven.pkg.github.com/metanorma/mn2pdf/com/metanorma/fop/mn2pdf/1.7/mn2pdf-1.7.jar
8686
MN2PDF_EXECUTABLE := $(notdir $(MN2PDF_DOWNLOAD_PATH))
8787

xslt_src/jis.international-standard.core.xsl

+85-56
Original file line numberDiff line numberDiff line change
@@ -456,9 +456,9 @@
456456
</xsl:if>
457457

458458
<xsl:variable name="updated_xml_step0">
459-
<xsl:if test="$vertical_layout = 'true'">
460-
<xsl:apply-templates mode="update_xml_step0"/>
461-
</xsl:if>
459+
<!-- <xsl:if test="$vertical_layout = 'true'"> -->
460+
<xsl:apply-templates mode="update_xml_step0"/>
461+
<!-- </xsl:if> -->
462462
</xsl:variable>
463463
<xsl:if test="$debug = 'true'">
464464
<redirect:write file="update_xml_step0.xml">
@@ -467,14 +467,15 @@
467467
</xsl:if>
468468

469469
<xsl:variable name="updated_xml_step1">
470-
<xsl:choose>
470+
<!-- <xsl:choose>
471471
<xsl:when test="$vertical_layout = 'true'">
472472
<xsl:apply-templates select="xalan:nodeset($updated_xml_step0)" mode="update_xml_step1"/>
473473
</xsl:when>
474474
<xsl:otherwise>
475475
<xsl:apply-templates mode="update_xml_step1"/>
476476
</xsl:otherwise>
477-
</xsl:choose>
477+
</xsl:choose> -->
478+
<xsl:apply-templates select="xalan:nodeset($updated_xml_step0)" mode="update_xml_step1"/>
478479
</xsl:variable>
479480
<!-- DEBUG: updated_xml_step1=<xsl:copy-of select="$updated_xml_step1"/> -->
480481
<xsl:if test="$debug = 'true'">
@@ -1169,7 +1170,7 @@
11691170

11701171
<xsl:template name="insertTocItem">
11711172
<fo:block text-align-last="justify" role="SKIP">
1172-
<fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
1173+
<fo:basic-link internal-destination="{@id}" fox:alt-text="{normalize-space(title)}">
11731174
<fo:inline>
11741175
<xsl:if test="$vertical_layout = 'true'">
11751176
<xsl:attribute name="padding-right">7.5mm</xsl:attribute>
@@ -2531,59 +2532,79 @@
25312532
<xsl:value-of select="$text10"/>
25322533
</xsl:template>
25332534

2535+
<!-- enclose surrogate pair characters into the tag 'spair' -->
2536+
<xsl:variable name="element_name_spair">spair</xsl:variable>
2537+
<xsl:variable name="tag_spair_open">###<xsl:value-of select="$element_name_spair"/>###</xsl:variable>
2538+
<xsl:variable name="tag_spair_close">###/<xsl:value-of select="$element_name_spair"/>###</xsl:variable>
25342539

25352540
<!-- replace horizontal to vertical oriented character -->
25362541
<xsl:template match="text()" mode="update_xml_step0" name="replace_horizontal_to_vertical_form">
25372542
<xsl:param name="text" select="."/>
2538-
<xsl:choose>
2539-
<xsl:when test="$isGenerateTableIF = 'false'">
2540-
<!-- from https://github.com/metanorma/docs/blob/main/109.adoc -->
2541-
<!--
2542-
U+3001 IDEOGRAPHIC COMMA (、)
2543-
to
2544-
U+FE11 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA (︑)
2545-
2546-
U+FE50 SMALL COMMA (﹐)
2547-
to
2548-
U+FE10 PRESENTATION FORM FOR VERTICAL COMMA (︐)
2549-
2550-
U+FE51 SMALL IDEOGRAPHIC COMMA (﹑)
2551-
to
2552-
U+FE11 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA (︑)
2553-
2554-
U+FF0C FULLWIDTH COMMA (,)
2555-
to
2556-
U+FE10 PRESENTATION FORM FOR VERTICAL COMMA (︐)
2557-
-->
2558-
<xsl:variable name="text1" select="translate($text,'&#x3001;&#xFE50;&#xFE51;&#xFF0C;','&#xFE11;&#xFE10;&#xFE11;&#xFE10;')"/>
2559-
2560-
<!--
2561-
U+FF1A FULLWIDTH COLON (:)
2562-
to
2563-
U+FE13 PRESENTATION FORM FOR VERTICAL COLON (︓)
2564-
2565-
U+FF1B FULLWIDTH SEMICOLON (;)
2566-
to
2567-
U+FE14 PRESENTATION FORM FOR VERTICAL SEMICOLON (︔)
2568-
-->
2569-
<xsl:variable name="text2" select="translate($text1,'&#xFF1A;&#xFF1B;','&#xFE13;&#xFE14;')"/>
2570-
2571-
<!--
2572-
U+FF01 FULLWIDTH EXCLAMATION MARK (!)
2573-
to
2574-
U+FE15 PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK (︕)
2575-
2576-
U+FF1F FULLWIDTH QUESTION MARK (?)
2577-
to
2578-
U+FE16 PRESENTATION FORM FOR VERTICAL QUESTION MARK (︖)
2579-
-->
2580-
<xsl:variable name="text3" select="translate($text2,'&#xFF01;&#xFF1F;','&#xFE15;&#xFE16;')"/>
2581-
<xsl:value-of select="$text3"/>
2582-
</xsl:when>
2583-
<xsl:otherwise>
2584-
<xsl:value-of select="$text"/>
2585-
</xsl:otherwise>
2586-
</xsl:choose>
2543+
<xsl:variable name="text_replaced">
2544+
<xsl:choose>
2545+
<xsl:when test="$vertical_layout = 'true' and $isGenerateTableIF = 'false'">
2546+
<!-- from https://github.com/metanorma/docs/blob/main/109.adoc -->
2547+
<!--
2548+
U+3001 IDEOGRAPHIC COMMA (、)
2549+
to
2550+
U+FE11 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA (︑)
2551+
2552+
U+FE50 SMALL COMMA (﹐)
2553+
to
2554+
U+FE10 PRESENTATION FORM FOR VERTICAL COMMA (︐)
2555+
2556+
U+FE51 SMALL IDEOGRAPHIC COMMA (﹑)
2557+
to
2558+
U+FE11 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA (︑)
2559+
2560+
U+FF0C FULLWIDTH COMMA (,)
2561+
to
2562+
U+FE10 PRESENTATION FORM FOR VERTICAL COMMA (︐)
2563+
-->
2564+
<xsl:variable name="text1" select="translate($text,'&#x3001;&#xFE50;&#xFE51;&#xFF0C;','&#xFE11;&#xFE10;&#xFE11;&#xFE10;')"/>
2565+
2566+
<!--
2567+
U+FF1A FULLWIDTH COLON (:)
2568+
to
2569+
U+FE13 PRESENTATION FORM FOR VERTICAL COLON (︓)
2570+
2571+
U+FF1B FULLWIDTH SEMICOLON (;)
2572+
to
2573+
U+FE14 PRESENTATION FORM FOR VERTICAL SEMICOLON (︔)
2574+
-->
2575+
<xsl:variable name="text2" select="translate($text1,'&#xFF1A;&#xFF1B;','&#xFE13;&#xFE14;')"/>
2576+
2577+
<!--
2578+
U+FF01 FULLWIDTH EXCLAMATION MARK (!)
2579+
to
2580+
U+FE15 PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK (︕)
2581+
2582+
U+FF1F FULLWIDTH QUESTION MARK (?)
2583+
to
2584+
U+FE16 PRESENTATION FORM FOR VERTICAL QUESTION MARK (︖)
2585+
-->
2586+
<xsl:variable name="text3" select="translate($text2,'&#xFF01;&#xFF1F;','&#xFE15;&#xFE16;')"/>
2587+
<xsl:value-of select="$text3"/>
2588+
</xsl:when>
2589+
<xsl:otherwise>
2590+
<xsl:value-of select="$text"/>
2591+
</xsl:otherwise>
2592+
</xsl:choose>
2593+
</xsl:variable>
2594+
2595+
2596+
<xsl:variable name="text_spair_" select="java:replaceAll(java:java.lang.String.new($text_replaced), $regex_surrogate_pairs, concat($tag_spair_open,'$1',$tag_spair_close))"/>
2597+
<xsl:variable name="text_spair">
2598+
<xsl:element name="text" namespace="{$namespace_full}">
2599+
<xsl:call-template name="replace_text_tags">
2600+
<xsl:with-param name="tag_open" select="$tag_spair_open"/>
2601+
<xsl:with-param name="tag_close" select="$tag_spair_close"/>
2602+
<xsl:with-param name="text" select="$text_spair_"/>
2603+
</xsl:call-template>
2604+
</xsl:element>
2605+
</xsl:variable>
2606+
<xsl:copy-of select="xalan:nodeset($text_spair)/*[local-name() = 'text']/node()"/>
2607+
25872608
</xsl:template>
25882609

25892610
<!-- =========================================================================== -->
@@ -2702,8 +2723,12 @@
27022723
<xsl:copy-of select="."/>
27032724
</xsl:template>
27042725

2726+
<!-- https://github.com/metanorma/laozi/issues/8 -->
2727+
<xsl:variable name="surrogate_pairs">\ud800\udc00-\udbff\udfff\ud800-\udfff</xsl:variable>
2728+
<xsl:variable name="regex_surrogate_pairs">([<xsl:value-of select="$surrogate_pairs"/>])</xsl:variable>
2729+
27052730
<!-- if vertical_layout = 'true', then font_en and font_en_bold are using for text rotation -->
2706-
<xsl:variable name="regex_en_base">\u00A0\u2002-\u200B\u3000-\u9FFF\uF900-\uFFFF</xsl:variable>
2731+
<xsl:variable name="regex_en_base">\u00A0\u2002-\u200B\u3000-\u9FFF\uF900-\uFFFF<xsl:value-of select="$surrogate_pairs"/></xsl:variable>
27072732
<xsl:variable name="regex_en_">
27082733
<xsl:choose>
27092734
<!-- ( ) [ ] _ { } U+FF08 FULLWIDTH LEFT PARENTHESIS U+FF09 FULLWIDTH RIGHT PARENTHESIS-->
@@ -3155,6 +3180,10 @@
31553180
<!-- END: Allocate non-Japanese text -->
31563181
<!-- ========================= -->
31573182

3183+
<xsl:template match="*[local-name() = 'spair'][normalize-space() != '']">
3184+
<fo:inline><xsl:apply-templates/></fo:inline>
3185+
</xsl:template>
3186+
31583187
<!-- patch for correct list-item-label rendering: enclose each char in inline-container -->
31593188
<xsl:template match="*[local-name() = 'note' or local-name() = 'example']/*[local-name() = 'name']/text()" priority="3">
31603189
<xsl:choose>

0 commit comments

Comments
 (0)