|
456 | 456 | </xsl:if>
|
457 | 457 |
|
458 | 458 | <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> --> |
462 | 462 | </xsl:variable>
|
463 | 463 | <xsl:if test="$debug = 'true'">
|
464 | 464 | <redirect:write file="update_xml_step0.xml">
|
|
467 | 467 | </xsl:if>
|
468 | 468 |
|
469 | 469 | <xsl:variable name="updated_xml_step1">
|
470 |
| - <xsl:choose> |
| 470 | + <!-- <xsl:choose> |
471 | 471 | <xsl:when test="$vertical_layout = 'true'">
|
472 | 472 | <xsl:apply-templates select="xalan:nodeset($updated_xml_step0)" mode="update_xml_step1"/>
|
473 | 473 | </xsl:when>
|
474 | 474 | <xsl:otherwise>
|
475 | 475 | <xsl:apply-templates mode="update_xml_step1"/>
|
476 | 476 | </xsl:otherwise>
|
477 |
| - </xsl:choose> |
| 477 | + </xsl:choose> --> |
| 478 | + <xsl:apply-templates select="xalan:nodeset($updated_xml_step0)" mode="update_xml_step1"/> |
478 | 479 | </xsl:variable>
|
479 | 480 | <!-- DEBUG: updated_xml_step1=<xsl:copy-of select="$updated_xml_step1"/> -->
|
480 | 481 | <xsl:if test="$debug = 'true'">
|
|
1169 | 1170 |
|
1170 | 1171 | <xsl:template name="insertTocItem">
|
1171 | 1172 | <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)}"> |
1173 | 1174 | <fo:inline>
|
1174 | 1175 | <xsl:if test="$vertical_layout = 'true'">
|
1175 | 1176 | <xsl:attribute name="padding-right">7.5mm</xsl:attribute>
|
|
2531 | 2532 | <xsl:value-of select="$text10"/>
|
2532 | 2533 | </xsl:template>
|
2533 | 2534 |
|
| 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> |
2534 | 2539 |
|
2535 | 2540 | <!-- replace horizontal to vertical oriented character -->
|
2536 | 2541 | <xsl:template match="text()" mode="update_xml_step0" name="replace_horizontal_to_vertical_form">
|
2537 | 2542 | <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,'、﹐﹑,','︑︐︑︐')"/> |
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,':;','︓︔')"/> |
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,'!?','︕︖')"/> |
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,'、﹐﹑,','︑︐︑︐')"/> |
| 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,':;','︓︔')"/> |
| 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,'!?','︕︖')"/> |
| 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 | + |
2587 | 2608 | </xsl:template>
|
2588 | 2609 |
|
2589 | 2610 | <!-- =========================================================================== -->
|
|
2702 | 2723 | <xsl:copy-of select="."/>
|
2703 | 2724 | </xsl:template>
|
2704 | 2725 |
|
| 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 | + |
2705 | 2730 | <!-- 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> |
2707 | 2732 | <xsl:variable name="regex_en_">
|
2708 | 2733 | <xsl:choose>
|
2709 | 2734 | <!-- ( ) [ ] _ { } U+FF08 FULLWIDTH LEFT PARENTHESIS U+FF09 FULLWIDTH RIGHT PARENTHESIS-->
|
|
3155 | 3180 | <!-- END: Allocate non-Japanese text -->
|
3156 | 3181 | <!-- ========================= -->
|
3157 | 3182 |
|
| 3183 | + <xsl:template match="*[local-name() = 'spair'][normalize-space() != '']"> |
| 3184 | + <fo:inline><xsl:apply-templates/></fo:inline> |
| 3185 | + </xsl:template> |
| 3186 | + |
3158 | 3187 | <!-- patch for correct list-item-label rendering: enclose each char in inline-container -->
|
3159 | 3188 | <xsl:template match="*[local-name() = 'note' or local-name() = 'example']/*[local-name() = 'name']/text()" priority="3">
|
3160 | 3189 | <xsl:choose>
|
|
0 commit comments