metanorma-itu 2.5.10 → 2.5.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6856d1e5a47229207262819bd414507980ba1f7945ade131dc25436f8b3b26ad
4
- data.tar.gz: cab902d7d3376782425d3a45da9d5edd8a2ea20717331069930ca8492d90ff80
3
+ metadata.gz: 312d170ccd07b402aa2c1a213d7d8f36d3cb710998b402f0b77719677762aece
4
+ data.tar.gz: e5ecd215947193f4f8d28c0b1b6f616cfbcb381796cb71e19d78fc943830fcb2
5
5
  SHA512:
6
- metadata.gz: e4ad0ed72c6af9f9aef07f704515dac8edb01080fda8025462786fc9dd13913552258bd2bd2b13fdfe1db3b778dadcc56b2b251d4e92f89fae82c3bd0a96368b
7
- data.tar.gz: fe7def58a63366c97d38a9c30e1c2c2ea00e880526430a811845cab05fe2bf33bd3b7511c2379a7aadb499376a8306fc9c51527e67523c8696e4290485e428be
6
+ metadata.gz: 36b18f472678852392474554962cc00fd995234f6d95f03d1fa9fd33608f47718e6ba79ceb9d10019cb09d36c3466a5e0775019a02990682abb443c02c3c2113
7
+ data.tar.gz: 604df294471c2ee9276ad8255624812edef462e9e2a1e8e30dc5aed28c47a1dfce005dfb159017e3723a1ee23a3650f4079e3af156eed2895f87a735c88ebdbd
@@ -1381,7 +1381,7 @@
1381
1381
 
1382
1382
  <xsl:for-each select="xalan:nodeset($updated_xml_with_pages)"> <!-- set context to preface/sections -->
1383
1383
 
1384
- <xsl:for-each select=".//*[local-name() = 'page_sequence'][parent::*[local-name() = 'preface']][normalize-space() != '' or .//image or .//svg]">
1384
+ <xsl:for-each select=".//*[local-name() = 'page_sequence'][parent::*[local-name() = 'preface']][normalize-space() != '' or .//*[local-name() = 'image'] or .//*[local-name() = 'svg']]">
1385
1385
 
1386
1386
  <fo:page-sequence master-reference="document-preface" format="i" force-page-count="no-force">
1387
1387
 
@@ -1492,7 +1492,7 @@
1492
1492
  </fo:page-sequence>
1493
1493
  </xsl:for-each> <!-- END: preface pages -->
1494
1494
 
1495
- <xsl:for-each select=".//*[local-name() = 'page_sequence'][not(parent::*[local-name() = 'preface'])][normalize-space() != '' or .//image or .//svg]">
1495
+ <xsl:for-each select=".//*[local-name() = 'page_sequence'][not(parent::*[local-name() = 'preface'])][normalize-space() != '' or .//*[local-name() = 'image'] or .//*[local-name() = 'svg']]">
1496
1496
 
1497
1497
  <!-- BODY -->
1498
1498
  <fo:page-sequence master-reference="document" force-page-count="no-force">
@@ -6109,7 +6109,9 @@
6109
6109
  <fo:block role="SKIP">
6110
6110
 
6111
6111
  <xsl:if test="$isGenerateTableIF = 'true'">
6112
- <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
6112
+
6113
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
6114
+
6113
6115
  </xsl:if>
6114
6116
 
6115
6117
  <xsl:apply-templates/>
@@ -7172,7 +7174,17 @@
7172
7174
  <xsl:call-template name="refine_dt-cell-style"/>
7173
7175
 
7174
7176
  <fo:block xsl:use-attribute-sets="dt-block-style" role="SKIP">
7175
- <xsl:copy-of select="@id"/>
7177
+
7178
+ <xsl:choose>
7179
+ <xsl:when test="$isGenerateTableIF = 'true'">
7180
+
7181
+ <xsl:copy-of select="@id"/>
7182
+
7183
+ </xsl:when>
7184
+ <xsl:otherwise>
7185
+ <xsl:copy-of select="@id"/>
7186
+ </xsl:otherwise>
7187
+ </xsl:choose>
7176
7188
 
7177
7189
  <xsl:if test="normalize-space($key_iso) = 'true'">
7178
7190
  <xsl:attribute name="margin-top">0</xsl:attribute>
@@ -7204,7 +7216,9 @@
7204
7216
  <fo:block role="SKIP">
7205
7217
 
7206
7218
  <xsl:if test="$isGenerateTableIF = 'true'">
7207
- <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
7219
+
7220
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
7221
+
7208
7222
  </xsl:if>
7209
7223
 
7210
7224
  <xsl:attribute name="text-align">justify</xsl:attribute>
@@ -8448,6 +8462,14 @@
8448
8462
  </xsl:for-each>
8449
8463
  </xsl:variable>
8450
8464
 
8465
+ <!-- <xsl:if test="$debug = 'true'">
8466
+ <redirect:write file="{generate-id()}_words_with_width_sorted.xml">
8467
+ <td_text><xsl:copy-of select="$td_text"/></td_text>
8468
+ <words_with_width><xsl:copy-of select="$words_with_width"/></words_with_width>
8469
+ <xsl:copy-of select="$words_with_width_sorted"/>
8470
+ </redirect:write>
8471
+ </xsl:if> -->
8472
+
8451
8473
  <xsl:variable name="words">
8452
8474
  <xsl:for-each select=".//*[local-name() = 'image' or local-name() = 'stem']">
8453
8475
  <word>
@@ -8573,6 +8595,7 @@
8573
8595
  <xsl:if test="ancestor::*[local-name() = 'tt']"><tag>tt</tag></xsl:if>
8574
8596
  <xsl:if test="ancestor::*[local-name() = 'sourcecode']"><tag>sourcecode</tag></xsl:if>
8575
8597
  <xsl:if test="ancestor::*[local-name() = 'keep-together_within-line']"><tag>keep-together_within-line</tag></xsl:if>
8598
+ <xsl:if test="ancestor::*[local-name() = 'font_en_vertical']"><tag>font_en_vertical</tag></xsl:if>
8576
8599
  </tags>
8577
8600
  </xsl:template>
8578
8601
  <!-- =============================== -->
@@ -9113,7 +9136,16 @@
9113
9136
  </xsl:when>
9114
9137
  <xsl:otherwise>
9115
9138
  <!-- output text from <link>text</link> -->
9116
- <xsl:apply-templates/>
9139
+ <xsl:choose>
9140
+ <xsl:when test="starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.')">
9141
+ <xsl:call-template name="add-zero-spaces-link-java">
9142
+ <xsl:with-param name="text" select="."/>
9143
+ </xsl:call-template>
9144
+ </xsl:when>
9145
+ <xsl:otherwise>
9146
+ <xsl:apply-templates/>
9147
+ </xsl:otherwise>
9148
+ </xsl:choose>
9117
9149
  </xsl:otherwise>
9118
9150
  </xsl:choose>
9119
9151
  </fo:basic-link>
@@ -9756,16 +9788,29 @@
9756
9788
  <xsl:template name="getImageSrc">
9757
9789
  <xsl:choose>
9758
9790
  <xsl:when test="not(starts-with(@src, 'data:'))">
9791
+ <xsl:call-template name="getImageSrcExternal"/>
9792
+ </xsl:when>
9793
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
9794
+ </xsl:choose>
9795
+ </xsl:template>
9796
+
9797
+ <xsl:template name="getImageSrcExternal">
9798
+ <xsl:choose>
9799
+ <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
9800
+ <xsl:value-of select="@src"/>
9801
+ </xsl:when>
9802
+ <xsl:otherwise>
9803
+ <xsl:variable name="src_with_basepath" select="concat($basepath, @src)"/>
9804
+ <xsl:variable name="file_exists" select="normalize-space(java:exists(java:java.io.File.new($src_with_basepath)))"/>
9759
9805
  <xsl:choose>
9760
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
9761
- <xsl:value-of select="@src"/>
9806
+ <xsl:when test="$file_exists = 'true'">
9807
+ <xsl:value-of select="$src_with_basepath"/>
9762
9808
  </xsl:when>
9763
9809
  <xsl:otherwise>
9764
- <xsl:value-of select="concat($basepath, @src)"/>
9810
+ <xsl:value-of select="@src"/>
9765
9811
  </xsl:otherwise>
9766
9812
  </xsl:choose>
9767
- </xsl:when>
9768
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
9813
+ </xsl:otherwise>
9769
9814
  </xsl:choose>
9770
9815
  </xsl:template>
9771
9816
 
@@ -9813,14 +9858,8 @@
9813
9858
  <xsl:value-of select="concat('url(file:///',$basepath, $src_png, ')')"/>
9814
9859
  </xsl:when>
9815
9860
  <xsl:when test="not(starts-with(@src, 'data:'))">
9816
- <xsl:choose>
9817
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
9818
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
9819
- </xsl:when>
9820
- <xsl:otherwise>
9821
- <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
9822
- </xsl:otherwise>
9823
- </xsl:choose>
9861
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
9862
+ <xsl:value-of select="concat('url(file:///', $src_external, ')')"/>
9824
9863
  </xsl:when>
9825
9864
  <xsl:otherwise>
9826
9865
  <xsl:value-of select="@src"/>
@@ -9841,16 +9880,8 @@
9841
9880
  </svg>
9842
9881
  </xsl:when>
9843
9882
  <xsl:when test="not(starts-with(@src, 'data:'))">
9844
- <xsl:variable name="src">
9845
- <xsl:choose>
9846
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
9847
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
9848
- </xsl:when>
9849
- <xsl:otherwise>
9850
- <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
9851
- </xsl:otherwise>
9852
- </xsl:choose>
9853
- </xsl:variable>
9883
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
9884
+ <xsl:variable name="src" select="concat('url(file:///', $src_external, ')')"/>
9854
9885
  <xsl:variable name="file" select="java:java.io.File.new(@src)"/>
9855
9886
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($file)"/>
9856
9887
  <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
@@ -14001,7 +14032,9 @@
14001
14032
  <xsl:template name="add_id">
14002
14033
  <xsl:if test="not(@id)">
14003
14034
  <!-- add @id - first element with @id plus '_element_name' -->
14004
- <xsl:attribute name="id"><xsl:value-of select="(.//*[@id])[1]/@id"/>_<xsl:value-of select="local-name()"/></xsl:attribute>
14035
+ <xsl:variable name="prefix_id_" select="(.//*[@id])[1]/@id"/>
14036
+ <xsl:variable name="prefix_id"><xsl:value-of select="$prefix_id_"/><xsl:if test="normalize-space($prefix_id_) = ''"><xsl:value-of select="generate-id()"/></xsl:if></xsl:variable>
14037
+ <xsl:attribute name="id"><xsl:value-of select="$prefix_id"/>_<xsl:value-of select="local-name()"/></xsl:attribute>
14005
14038
  </xsl:if>
14006
14039
  </xsl:template>
14007
14040
 
@@ -15306,6 +15339,7 @@
15306
15339
  <xsl:param name="formatted">false</xsl:param>
15307
15340
  <xsl:param name="lang"/>
15308
15341
  <xsl:param name="returnEmptyIfNotFound">false</xsl:param>
15342
+ <xsl:param name="bibdata_updated"/>
15309
15343
 
15310
15344
  <xsl:variable name="curr_lang">
15311
15345
  <xsl:choose>
@@ -15319,6 +15353,9 @@
15319
15353
 
15320
15354
  <xsl:variable name="data_value">
15321
15355
  <xsl:choose>
15356
+ <xsl:when test="$formatted = 'true' and string-length($bibdata_updated) != ''">
15357
+ <xsl:apply-templates select="xalan:nodeset($bibdata_updated)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
15358
+ </xsl:when>
15322
15359
  <xsl:when test="$formatted = 'true'">
15323
15360
  <xsl:apply-templates select="xalan:nodeset($bibdata)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
15324
15361
  </xsl:when>
@@ -15490,14 +15527,8 @@
15490
15527
  <xsl:value-of select="$src"/>
15491
15528
  </xsl:when>
15492
15529
  <xsl:otherwise>
15493
- <xsl:choose>
15494
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
15495
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
15496
- </xsl:when>
15497
- <xsl:otherwise>
15498
- <xsl:value-of select="concat('url(file:///',$basepath, $src, ')')"/>
15499
- </xsl:otherwise>
15500
- </xsl:choose>
15530
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
15531
+ <xsl:value-of select="concat('url(file:///', $src_external, ')')"/>
15501
15532
  </xsl:otherwise>
15502
15533
  </xsl:choose>
15503
15534
  </xsl:template>
@@ -15519,15 +15550,23 @@
15519
15550
  <!-- END: insert cover page image -->
15520
15551
 
15521
15552
  <!-- https://github.com/metanorma/docs/blob/main/109.adoc -->
15553
+ <xsl:variable name="regex_ja_spec_half_width_">
15554
+ \u0028 <!-- U+0028 LEFT PARENTHESIS (() -->
15555
+ \u0029 <!-- U+0029 RIGHT PARENTHESIS ()) -->
15556
+ \u007B <!-- U+007B LEFT CURLY BRACKET ({) -->
15557
+ \u007D <!-- U+007D RIGHT CURLY BRACKET (}) -->
15558
+ \uFF62 <!-- U+FF62 HALFWIDTH LEFT CORNER BRACKET (「) -->
15559
+ \uFF63 <!-- U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」) -->
15560
+ \u005B <!-- U+005B LEFT SQUARE BRACKET ([) -->
15561
+ \u005D <!-- U+005D RIGHT SQUARE BRACKET (]) -->
15562
+ </xsl:variable>
15563
+ <xsl:variable name="regex_ja_spec_half_width" select="translate(normalize-space($regex_ja_spec_half_width_), ' ', '')"/>
15522
15564
  <xsl:variable name="regex_ja_spec_">[
15523
15565
  <!-- Rotate 90° clockwise -->
15524
- \u0028 <!-- U+0028 LEFT PARENTHESIS (() -->
15566
+ <xsl:value-of select="$regex_ja_spec_half_width"/>
15525
15567
  \uFF08 <!-- U+FF08 FULLWIDTH LEFT PARENTHESIS (() -->
15526
- \u0029 <!-- U+0029 RIGHT PARENTHESIS ()) -->
15527
15568
  \uFF09 <!-- U+FF09 FULLWIDTH RIGHT PARENTHESIS ()) -->
15528
- \u007B <!-- U+007B LEFT CURLY BRACKET ({) -->
15529
15569
  \uFF5B <!-- U+FF5B FULLWIDTH LEFT CURLY BRACKET ({) -->
15530
- \u007D <!-- U+007D RIGHT CURLY BRACKET (}) -->
15531
15570
  \uFF5D <!-- U+FF5D FULLWIDTH RIGHT CURLY BRACKET (}) -->
15532
15571
  \u3014 <!-- U+3014 LEFT TORTOISE SHELL BRACKET (〔) -->
15533
15572
  \u3015 <!-- U+3015 RIGHT TORTOISE SHELL BRACKET (〕) -->
@@ -15535,21 +15574,16 @@
15535
15574
  \u3011 <!-- U+3011 RIGHT BLACK LENTICULAR BRACKET (】) -->
15536
15575
  \u300A <!-- U+300A LEFT DOUBLE ANGLE BRACKET (《) -->
15537
15576
  \u300B <!-- U+300B RIGHT DOUBLE ANGLE BRACKET (》) -->
15538
- \uFF62 <!-- U+FF62 HALFWIDTH LEFT CORNER BRACKET (「) -->
15539
15577
  \u300C <!-- U+300C LEFT CORNER BRACKET (「) -->
15540
- \uFF63 <!-- U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」) -->
15541
15578
  \u300D <!-- U+300D RIGHT CORNER BRACKET (」) -->
15542
15579
  \u300E <!-- U+300E LEFT WHITE CORNER BRACKET (『) -->
15543
15580
  \u300F <!-- U+300F RIGHT WHITE CORNER BRACKET (』) -->
15544
- \u005B <!-- U+005B LEFT SQUARE BRACKET ([) -->
15545
15581
  \uFF3B <!-- U+FF3B FULLWIDTH LEFT SQUARE BRACKET ([) -->
15546
- \u005D <!-- U+005D RIGHT SQUARE BRACKET (]) -->
15547
15582
  \uFF3D <!-- U+FF3D FULLWIDTH RIGHT SQUARE BRACKET (]) -->
15548
15583
  \u3008 <!-- U+3008 LEFT ANGLE BRACKET (〈) -->
15549
15584
  \u3009 <!-- U+3009 RIGHT ANGLE BRACKET (〉) -->
15550
15585
  \u3016 <!-- U+3016 LEFT WHITE LENTICULAR BRACKET (〖) -->
15551
15586
  \u3017 <!-- U+3017 RIGHT WHITE LENTICULAR BRACKET (〗) -->
15552
-
15553
15587
  \u301A <!-- U+301A LEFT WHITE SQUARE BRACKET (〚) -->
15554
15588
  \u301B <!-- U+301B RIGHT WHITE SQUARE BRACKET (〛) -->
15555
15589
  \u301C <!-- U+301C WAVE DASH (〜) -->
@@ -15581,6 +15615,7 @@
15581
15615
  <xsl:variable name="regex_ja_spec"><xsl:value-of select="translate(normalize-space($regex_ja_spec_), ' ', '')"/></xsl:variable>
15582
15616
  <xsl:template name="insertVerticalChar">
15583
15617
  <xsl:param name="str"/>
15618
+ <xsl:param name="char_prev"/>
15584
15619
  <xsl:param name="writing-mode">lr-tb</xsl:param>
15585
15620
  <xsl:param name="reference-orientation">90</xsl:param>
15586
15621
  <xsl:param name="add_zero_width_space">false</xsl:param>
@@ -15590,53 +15625,99 @@
15590
15625
  </xsl:when>
15591
15626
  <xsl:otherwise>
15592
15627
  <xsl:if test="string-length($str) &gt; 0">
15593
- <xsl:variable name="horizontal_mode" select="normalize-space(ancestor::*[local-name() = 'span'][@class = 'horizontal'] and 1 = 1)"/>
15628
+
15629
+ <!-- <xsl:variable name="horizontal_mode" select="normalize-space(ancestor::*[local-name() = 'span'][@class = 'horizontal'] and 1 = 1)"/> -->
15594
15630
  <xsl:variable name="char" select="substring($str,1,1)"/>
15595
- <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm">
15596
- <xsl:if test="normalize-space($writing-mode) != ''">
15597
- <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
15598
- <xsl:attribute name="reference-orientation">90</xsl:attribute>
15599
- </xsl:if>
15600
- <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
15601
- <xsl:attribute name="reference-orientation">0</xsl:attribute>
15602
- </xsl:if>
15603
- <xsl:if test="$char = '゜' or $char = '。' or $char = '﹒' or $char = '.'">
15604
- <!-- Rotate 180°:
15605
- U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜)
15606
- U+3002 IDEOGRAPHIC FULL STOP (。)
15607
- U+FE52 SMALL FULL STOP (﹒)
15608
- U+FF0E FULLWIDTH FULL STOP ()
15609
- -->
15610
- <xsl:attribute name="reference-orientation">-90</xsl:attribute>
15611
- </xsl:if>
15612
- <fo:block-container width="1em">
15613
- <fo:block line-height="1em">
15614
- <xsl:choose>
15615
- <xsl:when test="$horizontal_mode = 'true'">
15616
- <xsl:value-of select="$str"/>
15617
- </xsl:when>
15618
- <xsl:otherwise>
15631
+ <xsl:variable name="char_next" select="substring($str,2,1)"/>
15632
+
15633
+ <xsl:variable name="char_half_width" select="normalize-space(java:matches(java:java.lang.String.new($char), concat('([', $regex_ja_spec_half_width, ']{1,})')))"/>
15634
+
15635
+ <xsl:choose>
15636
+ <xsl:when test="$char_half_width = 'true'">
15637
+ <fo:inline>
15638
+ <xsl:attribute name="baseline-shift">7%</xsl:attribute>
15639
+ <xsl:value-of select="$char"/>
15640
+ </fo:inline>
15641
+ </xsl:when>
15642
+ <xsl:otherwise>
15643
+ <!-- namespace-uri(ancestor::*[local-name() = 'title']) != '' to skip title from $contents -->
15644
+ <xsl:if test="namespace-uri(ancestor::*[local-name() = 'title']) != '' and ($char_prev = '' and ../preceding-sibling::node())">
15645
+ <fo:inline padding-left="1mm"><xsl:value-of select="$zero_width_space"/></fo:inline>
15646
+ </xsl:if>
15647
+ <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm" role="SKIP" text-align-last="center">
15648
+ <xsl:if test="normalize-space($writing-mode) != ''">
15649
+ <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
15650
+ <xsl:attribute name="reference-orientation">90</xsl:attribute>
15651
+ </xsl:if>
15652
+ <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
15653
+ <xsl:attribute name="reference-orientation">0</xsl:attribute>
15654
+ </xsl:if>
15655
+ <xsl:if test="$char = '゜' or $char = '。' or $char = '﹒' or $char = '.'">
15656
+ <!-- Rotate 180°:
15657
+ U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜)
15658
+ U+3002 IDEOGRAPHIC FULL STOP (。)
15659
+ U+FE52 SMALL FULL STOP (﹒)
15660
+ U+FF0E FULLWIDTH FULL STOP (.)
15661
+ -->
15662
+ <xsl:attribute name="reference-orientation">-90</xsl:attribute>
15663
+ </xsl:if>
15664
+ <fo:block-container width="1em" role="SKIP"><!-- border="0.5pt solid blue" -->
15665
+ <fo:block line-height="1em" role="SKIP">
15666
+ <!-- <xsl:choose>
15667
+ <xsl:when test="$horizontal_mode = 'true'">
15668
+ <xsl:value-of select="$str"/>
15669
+ </xsl:when>
15670
+ <xsl:otherwise>
15671
+ <xsl:value-of select="$char"/>
15672
+ </xsl:otherwise>
15673
+ </xsl:choose> -->
15619
15674
  <xsl:value-of select="$char"/>
15620
- </xsl:otherwise>
15621
- </xsl:choose>
15622
- </fo:block>
15623
- </fo:block-container>
15624
- </fo:inline-container>
15625
- <xsl:if test="$add_zero_width_space = 'true' and ($char = ',' or $char = '.' or $char = ' ' or $char = '·' or $char = ')' or $char = ']' or $char = '}')"><xsl:value-of select="$zero_width_space"/></xsl:if>
15626
-
15627
- <xsl:if test="$horizontal_mode = 'false'">
15628
- <xsl:call-template name="insertVerticalChar">
15629
- <xsl:with-param name="str" select="substring($str, 2)"/>
15630
- <xsl:with-param name="writing-mode" select="$writing-mode"/>
15631
- <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
15632
- <xsl:with-param name="add_zero_width_space" select="$add_zero_width_space"/>
15633
- </xsl:call-template>
15634
- </xsl:if>
15675
+ </fo:block>
15676
+ </fo:block-container>
15677
+ </fo:inline-container>
15678
+ <xsl:if test="namespace-uri(ancestor::*[local-name() = 'title']) != '' and ($char_next != '' or ../following-sibling::node())">
15679
+ <fo:inline padding-left="1mm"><xsl:value-of select="$zero_width_space"/></fo:inline>
15680
+ </xsl:if>
15681
+ </xsl:otherwise>
15682
+ </xsl:choose>
15683
+
15684
+ <xsl:if test="$add_zero_width_space = 'true' and ($char = ',' or $char = '.' or $char = ' ' or $char = '·' or $char = ')' or $char = ']' or $char = '}' or $char = '/')"><xsl:value-of select="$zero_width_space"/></xsl:if>
15685
+ <!-- <xsl:if test="$horizontal_mode = 'false'"> -->
15686
+ <xsl:call-template name="insertVerticalChar">
15687
+ <xsl:with-param name="str" select="substring($str, 2)"/>
15688
+ <xsl:with-param name="char_prev" select="$char"/>
15689
+ <xsl:with-param name="writing-mode" select="$writing-mode"/>
15690
+ <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
15691
+ <xsl:with-param name="add_zero_width_space" select="$add_zero_width_space"/>
15692
+ </xsl:call-template>
15693
+ <!-- </xsl:if> -->
15635
15694
  </xsl:if>
15636
15695
  </xsl:otherwise>
15637
15696
  </xsl:choose>
15638
15697
  </xsl:template>
15639
15698
 
15699
+ <xsl:template name="insertHorizontalChars">
15700
+ <xsl:param name="str"/>
15701
+ <xsl:param name="writing-mode">lr-tb</xsl:param>
15702
+ <xsl:param name="reference-orientation">90</xsl:param>
15703
+ <xsl:param name="add_zero_width_space">false</xsl:param>
15704
+ <xsl:choose>
15705
+ <xsl:otherwise>
15706
+ <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm" role="SKIP">
15707
+ <xsl:if test="normalize-space($writing-mode) != ''">
15708
+ <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
15709
+ <xsl:attribute name="reference-orientation">90</xsl:attribute>
15710
+ </xsl:if>
15711
+ <fo:block-container width="1em" role="SKIP"> <!-- border="0.5pt solid green" -->
15712
+ <fo:block line-height="1em" role="SKIP">
15713
+ <xsl:value-of select="$str"/>
15714
+ </fo:block>
15715
+ </fo:block-container>
15716
+ </fo:inline-container>
15717
+ </xsl:otherwise>
15718
+ </xsl:choose>
15719
+ </xsl:template>
15720
+
15640
15721
  <xsl:template name="number-to-words">
15641
15722
  <xsl:param name="number"/>
15642
15723
  <xsl:param name="first"/>