metanorma-m3aawg 2.1.6 → 2.1.8.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e412c976cf7cd35f52c321b9d2c02772c3b9aac9598f0bd7682864e2c1a97e1
4
- data.tar.gz: 1d49ed66206ebcbf66101106868dfed67d4d12dfc03635295ac952762dd3067a
3
+ metadata.gz: 045ce58a3bfec9df2645c1d5aa0ec057946625b1e051813958d7cc8534dec911
4
+ data.tar.gz: 47dd69ec834652367ff9887cc86ea286b94954e9da9a8ce9d82c8c674bb46b9c
5
5
  SHA512:
6
- metadata.gz: 78acf6198e27b2f390f4f9883a38289a28c7a72f50a59e6a59f6d5082b933ac223ef5c07de1f6665291fe485a67f00ee9e94dcb0bc6fb5c0d2deb32aa0bae224
7
- data.tar.gz: 0baf14043064b1f1169f59064160ae5b5096582becd47c187190148ac3522e0724009d57216dd6e6a6ada3e11c8f1576329ec5047cfd452ffda5cbbd4736e3a9
6
+ metadata.gz: a7f023448dab072f412abf8621796233838483a7d794107a1fc44bbb3e9743d72ce95326116009258c6785eec5635cf2c15b27fc392de870ca25bfa9f15dc4e4
7
+ data.tar.gz: 8c955a578e69be60898499e29ed39e0370d374d8a3953bb8fbc79eda613918afd7b68c4f6a7661b7fe8dbb32d638f691e84684054102c6ef56c2c83b82d36f5d
@@ -10,6 +10,6 @@ on:
10
10
 
11
11
  jobs:
12
12
  notify:
13
- uses: metanorma/metanorma-build-scripts/.github/workflows/mn-processor-rake.yml@main
13
+ uses: metanorma/ci/.github/workflows/mn-processor-rake.yml@main
14
14
  secrets:
15
15
  pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
@@ -0,0 +1,24 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ name: release
4
+
5
+ on:
6
+ workflow_dispatch:
7
+ inputs:
8
+ next_version:
9
+ description: |
10
+ Next release version. Possible values: x.y.z, major, minor, patch or pre|rc|etc
11
+ required: true
12
+ default: 'skip'
13
+ push:
14
+ tags: [ v* ]
15
+
16
+ jobs:
17
+ release:
18
+ uses: metanorma/ci/.github/workflows/rubygems-release.yml@main
19
+ with:
20
+ next_version: ${{ github.event.inputs.next_version }}
21
+ secrets:
22
+ rubygems-api-key: ${{ secrets.METANORMA_CI_RUBYGEMS_API_KEY }}
23
+ pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
24
+
@@ -673,8 +673,18 @@
673
673
 
674
674
  <xsl:param name="table_if_debug">false</xsl:param> <!-- set 'true' to put debug width data before table or dl -->
675
675
 
676
+ <xsl:variable name="isApplyAutolayoutAlgorithm_">
677
+ true
678
+ </xsl:variable>
679
+ <xsl:variable name="isApplyAutolayoutAlgorithm" select="normalize-space($isApplyAutolayoutAlgorithm_)"/>
680
+
676
681
  <xsl:variable name="isGenerateTableIF_">
677
- false
682
+ <xsl:choose>
683
+ <xsl:when test="$isApplyAutolayoutAlgorithm = 'true'">
684
+ <xsl:value-of select="normalize-space($table_if) = 'true'"/>
685
+ </xsl:when>
686
+ <xsl:otherwise>false</xsl:otherwise>
687
+ </xsl:choose>
678
688
  </xsl:variable>
679
689
  <xsl:variable name="isGenerateTableIF" select="normalize-space($isGenerateTableIF_)"/>
680
690
 
@@ -1087,6 +1097,9 @@
1087
1097
  <xsl:attribute-set name="import-style">
1088
1098
  </xsl:attribute-set>
1089
1099
 
1100
+ <xsl:attribute-set name="component-style">
1101
+ </xsl:attribute-set>
1102
+
1090
1103
  <xsl:attribute-set name="recommendation-style">
1091
1104
 
1092
1105
  </xsl:attribute-set>
@@ -1269,7 +1282,7 @@
1269
1282
  </xsl:attribute-set>
1270
1283
 
1271
1284
  <xsl:attribute-set name="dt-block-style">
1272
- <xsl:attribute name="margin-top">6pt</xsl:attribute>
1285
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
1273
1286
 
1274
1287
  </xsl:attribute-set>
1275
1288
 
@@ -2229,6 +2242,7 @@
2229
2242
 
2230
2243
  <xsl:variable name="margin-side">
2231
2244
  <xsl:choose>
2245
+ <xsl:when test="$isApplyAutolayoutAlgorithm = 'true'">0</xsl:when>
2232
2246
  <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2233
2247
  <xsl:otherwise>0</xsl:otherwise>
2234
2248
  </xsl:choose>
@@ -2297,6 +2311,7 @@
2297
2311
  </td>
2298
2312
  </tr>
2299
2313
  -->
2314
+ <!-- Simple_table=<xsl:copy-of select="$simple-table"/> -->
2300
2315
  <xsl:apply-templates select="xalan:nodeset($simple-table)" mode="process_table-if"/>
2301
2316
 
2302
2317
  </xsl:when>
@@ -2431,12 +2446,17 @@
2431
2446
  <xsl:template name="calculate-column-widths">
2432
2447
  <xsl:param name="table"/>
2433
2448
  <xsl:param name="cols-count"/>
2434
-
2449
+ <xsl:choose>
2450
+ <xsl:when test="$isApplyAutolayoutAlgorithm = 'true'">
2451
+ <xsl:call-template name="get-calculated-column-widths-autolayout-algorithm"/>
2452
+ </xsl:when>
2453
+ <xsl:otherwise>
2435
2454
  <xsl:call-template name="calculate-column-widths-proportional">
2436
2455
  <xsl:with-param name="cols-count" select="$cols-count"/>
2437
2456
  <xsl:with-param name="table" select="$table"/>
2438
2457
  </xsl:call-template>
2439
-
2458
+ </xsl:otherwise>
2459
+ </xsl:choose>
2440
2460
  </xsl:template>
2441
2461
 
2442
2462
  <!-- ================================================== -->
@@ -2614,6 +2634,7 @@
2614
2634
  <!-- (https://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.5.2) -->
2615
2635
  <!-- ================================================== -->
2616
2636
 
2637
+ <!-- INPUT: table with columns widths, generated by table_if.xsl -->
2617
2638
  <xsl:template name="calculate-column-widths-autolayout-algorithm">
2618
2639
  <xsl:param name="parent_table_page-width"/> <!-- for nested tables, in re-calculate step -->
2619
2640
 
@@ -2625,67 +2646,6 @@
2625
2646
 
2626
2647
  <!-- Since line wrap has been disabled, paragraphs are treated as long lines unless broken by BR elements. -->
2627
2648
 
2628
- <!-- get current table id -->
2629
- <xsl:variable name="table_id" select="@id"/>
2630
- <!-- find table by id in the file 'table_widths' -->
2631
- <!-- <xsl:variable name="table-if_" select="$table_widths_from_if//table[@id = $table_id]"/>
2632
- <xsl:variable name="table-if" select="xalan:nodeset($table-if_)"/> -->
2633
-
2634
- <!-- table='<xsl:copy-of select="$table"/>' -->
2635
- <!-- table_id='<xsl:value-of select="$table_id"/>\ -->
2636
- <!-- table-if='<xsl:copy-of select="$table-if"/>' -->
2637
- <!-- table_widths_from_if='<xsl:copy-of select="$table_widths_from_if"/>' -->
2638
-
2639
- <xsl:variable name="table_with_cell_widths_">
2640
- <xsl:apply-templates select="." mode="determine_cell_widths-if"/> <!-- read column's width from IF -->
2641
- </xsl:variable>
2642
- <xsl:variable name="table_with_cell_widths" select="xalan:nodeset($table_with_cell_widths_)"/>
2643
-
2644
- <!-- <xsl:if test="$table_if_debug = 'true'">
2645
- <xsl:copy-of select="$table_with_cell_widths"/>
2646
- </xsl:if> -->
2647
-
2648
- <!-- The minimum and maximum cell widths are then used to determine the corresponding minimum and maximum widths for the columns. -->
2649
-
2650
- <xsl:variable name="column_widths_">
2651
- <!-- iteration of columns -->
2652
- <xsl:for-each select="$table_with_cell_widths//tr[1]/td">
2653
- <xsl:variable name="pos" select="position()"/>
2654
- <column>
2655
- <xsl:attribute name="width_max">
2656
- <xsl:for-each select="ancestor::tbody//tr/td[$pos]/@width_max">
2657
- <xsl:sort select="." data-type="number" order="descending"/>
2658
- <xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
2659
- </xsl:for-each>
2660
- </xsl:attribute>
2661
- <xsl:attribute name="width_min">
2662
- <xsl:for-each select="ancestor::tbody//tr/td[$pos]/@width_min">
2663
- <xsl:sort select="." data-type="number" order="descending"/>
2664
- <xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
2665
- </xsl:for-each>
2666
- </xsl:attribute>
2667
- </column>
2668
- </xsl:for-each>
2669
- </xsl:variable>
2670
- <xsl:variable name="column_widths" select="xalan:nodeset($column_widths_)"/>
2671
-
2672
- <!-- <column_widths>
2673
- <xsl:copy-of select="$column_widths"/>
2674
- </column_widths> -->
2675
-
2676
- <!-- These in turn, are used to find the minimum and maximum width for the table. -->
2677
- <xsl:variable name="table_widths_">
2678
- <table>
2679
- <xsl:attribute name="width_max">
2680
- <xsl:value-of select="sum($column_widths/column/@width_max)"/>
2681
- </xsl:attribute>
2682
- <xsl:attribute name="width_min">
2683
- <xsl:value-of select="sum($column_widths/column/@width_min)"/>
2684
- </xsl:attribute>
2685
- </table>
2686
- </xsl:variable>
2687
- <xsl:variable name="table_widths" select="xalan:nodeset($table_widths_)"/>
2688
-
2689
2649
  <xsl:variable name="page_width">
2690
2650
  <xsl:choose>
2691
2651
  <xsl:when test="$parent_table_page-width != ''">
@@ -2698,16 +2658,13 @@
2698
2658
  </xsl:variable>
2699
2659
 
2700
2660
  <xsl:if test="$table_if_debug = 'true'">
2701
- <table_width>
2702
- <xsl:copy-of select="$table_widths"/>
2703
- </table_width>
2704
- <debug>$page_width=<xsl:value-of select="$page_width"/></debug>
2661
+ <page_width><xsl:value-of select="$page_width"/></page_width>
2705
2662
  </xsl:if>
2706
2663
 
2707
2664
  <!-- There are three cases: -->
2708
2665
  <xsl:choose>
2709
2666
  <!-- 1. The minimum table width is equal to or wider than the available space -->
2710
- <xsl:when test="$table_widths/table/@width_min &gt;= $page_width and 1 = 2"> <!-- this condition isn't working see case 3 below -->
2667
+ <xsl:when test="@width_min &gt;= $page_width and 1 = 2"> <!-- this condition isn't working see case 3 below -->
2711
2668
  <!-- call old algorithm -->
2712
2669
  <case1/>
2713
2670
  <!-- <xsl:variable name="cols-count" select="count(xalan:nodeset($table)/*/tr[1]/td)"/>
@@ -2717,10 +2674,10 @@
2717
2674
  </xsl:call-template> -->
2718
2675
  </xsl:when>
2719
2676
  <!-- 2. The maximum table width fits within the available space. In this case, set the columns to their maximum widths. -->
2720
- <xsl:when test="$table_widths/table/@width_max &lt;= $page_width">
2677
+ <xsl:when test="@width_max &lt;= $page_width">
2721
2678
  <case2/>
2722
2679
  <autolayout/>
2723
- <xsl:for-each select="$column_widths/column/@width_max">
2680
+ <xsl:for-each select="column/@width_max">
2724
2681
  <column divider="100"><xsl:value-of select="."/></column>
2725
2682
  </xsl:for-each>
2726
2683
  </xsl:when>
@@ -2730,19 +2687,19 @@
2730
2687
  For each column, let d be the difference between maximum and minimum width of that column.
2731
2688
  Now set the column's width to the minimum width plus d times W over D.
2732
2689
  This makes columns with large differences between minimum and maximum widths wider than columns with smaller differences. -->
2733
- <xsl:when test="($table_widths/table/@width_max &gt; $page_width and $table_widths/table/@width_min &lt; $page_width) or ($table_widths/table/@width_min &gt;= $page_width)">
2690
+ <xsl:when test="(@width_max &gt; $page_width and @width_min &lt; $page_width) or (@width_min &gt;= $page_width)">
2734
2691
  <!-- difference between the available space and the minimum table width -->
2735
- <xsl:variable name="W" select="$page_width - $table_widths/table/@width_min"/>
2692
+ <xsl:variable name="W" select="$page_width - @width_min"/>
2736
2693
  <W><xsl:value-of select="$W"/></W>
2737
2694
  <!-- difference between maximum and minimum width of the table -->
2738
- <xsl:variable name="D" select="$table_widths/table/@width_max - $table_widths/table/@width_min"/>
2695
+ <xsl:variable name="D" select="@width_max - @width_min"/>
2739
2696
  <D><xsl:value-of select="$D"/></D>
2740
2697
  <case3/>
2741
2698
  <autolayout/>
2742
- <xsl:if test="$table_widths/table/@width_min &gt;= $page_width">
2699
+ <xsl:if test="@width_min &gt;= $page_width">
2743
2700
  <split_keep-within-line>true</split_keep-within-line>
2744
2701
  </xsl:if>
2745
- <xsl:for-each select="$column_widths/column">
2702
+ <xsl:for-each select="column">
2746
2703
  <!-- difference between maximum and minimum width of that column. -->
2747
2704
  <xsl:variable name="d" select="@width_max - @width_min"/>
2748
2705
  <d><xsl:value-of select="$d"/></d>
@@ -2768,23 +2725,39 @@
2768
2725
 
2769
2726
  <parent_element><xsl:value-of select="local-name(..)"/></parent_element>
2770
2727
 
2728
+ <ancestor_tree>
2729
+ <xsl:for-each select="ancestor::*">
2730
+ <ancestor><xsl:value-of select="local-name()"/></ancestor>
2731
+ </xsl:for-each>
2732
+ </ancestor_tree>
2733
+
2771
2734
  <xsl:variable name="parent_table_page-width_">
2772
2735
  <xsl:if test="$parent_table_id != ''">
2773
2736
  <!-- determine column number in the parent table -->
2774
2737
  <xsl:variable name="parent_table_column_number">
2775
2738
  <xsl:choose>
2776
- <xsl:when test="parent::*[local-name() = 'dd']">2</xsl:when>
2739
+ <!-- <xsl:when test="parent::*[local-name() = 'dd']">2</xsl:when> -->
2740
+ <xsl:when test="(ancestor::*[local-name() = 'dd' or local-name() = 'table' or local-name() = 'dl'])[last()][local-name() = 'dd' or local-name() = 'dl']">2</xsl:when>
2777
2741
  <xsl:otherwise> <!-- parent is table -->
2778
2742
  <xsl:value-of select="count(ancestor::*[local-name() = 'td'][1]/preceding-sibling::*[local-name() = 'td']) + 1"/>
2779
2743
  </xsl:otherwise>
2780
2744
  </xsl:choose>
2781
2745
  </xsl:variable>
2782
2746
  <!-- find table by id in the file 'table_widths' and get all Nth `<column>...</column> -->
2783
- <xsl:value-of select="$table_widths_from_if_calculated//table[@id = $parent_table_id]/column[number($parent_table_column_number)]"/>
2747
+
2748
+ <xsl:variable name="parent_table_column_" select="$table_widths_from_if_calculated//table[@id = $parent_table_id]/column[number($parent_table_column_number)]"/>
2749
+ <xsl:variable name="parent_table_column" select="xalan:nodeset($parent_table_column_)"/>
2750
+ <!-- <xsl:variable name="divider">
2751
+ <xsl:value-of select="$parent_table_column/@divider"/>
2752
+ <xsl:if test="not($parent_table_column/@divider)">1</xsl:if>
2753
+ </xsl:variable> -->
2754
+ <xsl:value-of select="$parent_table_column/text()"/> <!-- * 10 -->
2784
2755
  </xsl:if>
2785
2756
  </xsl:variable>
2786
2757
  <xsl:variable name="parent_table_page-width" select="normalize-space($parent_table_page-width_)"/>
2787
2758
 
2759
+ <parent_table_page-width><xsl:value-of select="$parent_table_page-width"/></parent_table_page-width>
2760
+
2788
2761
  <!-- get current table id -->
2789
2762
  <xsl:variable name="table_id" select="@id"/>
2790
2763
 
@@ -2805,50 +2778,6 @@
2805
2778
 
2806
2779
  </xsl:template> <!-- get-calculated-column-widths-autolayout-algorithm -->
2807
2780
 
2808
- <!-- ============================= -->
2809
- <!-- mode: determine_cell_widths-if -->
2810
- <!-- ============================= -->
2811
- <xsl:template match="@*|node()" mode="determine_cell_widths-if">
2812
- <xsl:copy>
2813
- <xsl:apply-templates select="@*|node()" mode="determine_cell_widths-if"/>
2814
- </xsl:copy>
2815
- </xsl:template>
2816
-
2817
- <xsl:template match="td | th" mode="determine_cell_widths-if">
2818
- <xsl:copy>
2819
- <xsl:copy-of select="@*"/>
2820
-
2821
- <!-- The maximum width is given by the widest line. -->
2822
- <xsl:attribute name="width_max">
2823
- <xsl:for-each select="p_len">
2824
- <xsl:sort select="." data-type="number" order="descending"/>
2825
- <xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
2826
- </xsl:for-each>
2827
- </xsl:attribute>
2828
-
2829
- <!-- The minimum width is given by the widest text element (word, image, etc.) -->
2830
- <xsl:variable name="width_min">
2831
- <xsl:for-each select="word_len">
2832
- <xsl:sort select="." data-type="number" order="descending"/>
2833
- <xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
2834
- </xsl:for-each>
2835
- </xsl:variable>
2836
- <xsl:attribute name="width_min">
2837
- <xsl:value-of select="$width_min"/>
2838
- </xsl:attribute>
2839
-
2840
- <xsl:if test="$width_min = 0">
2841
- <xsl:attribute name="width_min">1</xsl:attribute>
2842
- </xsl:if>
2843
-
2844
- <xsl:apply-templates select="node()" mode="determine_cell_widths-if"/>
2845
-
2846
- </xsl:copy>
2847
- </xsl:template>
2848
- <!-- ============================= -->
2849
- <!-- END mode: determine_cell_widths-if -->
2850
- <!-- ============================= -->
2851
-
2852
2781
  <!-- ================================================== -->
2853
2782
  <!-- Calculate column's width based on HTML4 algorithm -->
2854
2783
  <!-- ================================================== -->
@@ -3039,6 +2968,7 @@
3039
2968
  <xsl:when test="$table_or_dl = 'table'">
3040
2969
  <xsl:for-each select="*[local-name() = 'td' or local-name() = 'th']/*">
3041
2970
  <fo:table-row number-columns-spanned="{$col_count}">
2971
+ <xsl:copy-of select="../@font-weight"/>
3042
2972
  <!-- <test_table><xsl:copy-of select="."/></test_table> -->
3043
2973
  <xsl:call-template name="td"/>
3044
2974
  </fo:table-row>
@@ -3185,7 +3115,7 @@
3185
3115
 
3186
3116
  <xsl:apply-templates/>
3187
3117
 
3188
- <xsl:if test="$isGenerateTableIF = 'true'"><fo:inline id="{@id}_end">end</fo:inline></xsl:if> <!-- to determine width of text --> <!-- <xsl:value-of select="$hair_space"/> -->
3118
+ <xsl:if test="$isGenerateTableIF = 'true'"> <fo:inline id="{@id}_end">end</fo:inline></xsl:if> <!-- to determine width of text --> <!-- <xsl:value-of select="$hair_space"/> -->
3189
3119
 
3190
3120
  </fo:block>
3191
3121
  </fo:table-cell>
@@ -3511,6 +3441,7 @@
3511
3441
  <xsl:template match="*[local-name()='dl']">
3512
3442
  <xsl:variable name="isAdded" select="@added"/>
3513
3443
  <xsl:variable name="isDeleted" select="@deleted"/>
3444
+ <!-- <dl><xsl:copy-of select="."/></dl> -->
3514
3445
  <fo:block-container>
3515
3446
 
3516
3447
  <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
@@ -4044,21 +3975,16 @@
4044
3975
  <!-- virtual html table for dl/[dt and dd] for IF (Intermediate Format) -->
4045
3976
  <xsl:template match="*[local-name()='dt']" mode="dl_if">
4046
3977
  <xsl:param name="id"/>
4047
- <xsl:variable name="row_number" select="count(preceding-sibling::*[local-name()='dt']) + 1"/>
4048
3978
  <tr>
4049
3979
  <td>
4050
3980
  <xsl:copy-of select="node()"/>
4051
3981
  </td>
4052
3982
  <td>
4053
-
4054
- <xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]"/>
4055
-
4056
- <!-- get paragraphs from nested 'dl' -->
4057
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]/*[local-name() = 'dl']" mode="dl_if_nested"/>
4058
-
3983
+ <xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]"/>
3984
+ <!-- get paragraphs from nested 'dl' -->
3985
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]/*[local-name() = 'dl']" mode="dl_if_nested"/>
4059
3986
  </td>
4060
3987
  </tr>
4061
-
4062
3988
  </xsl:template>
4063
3989
  <xsl:template match="*[local-name()='dd']" mode="dl_if"/>
4064
3990
 
@@ -4714,6 +4640,9 @@
4714
4640
  <xsl:variable name="td">
4715
4641
  <xsl:element name="td">
4716
4642
  <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
4643
+ <xsl:if test="local-name()='th'">
4644
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
4645
+ </xsl:if>
4717
4646
  <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
4718
4647
  <xsl:apply-templates mode="simple-table-colspan"/>
4719
4648
  </xsl:element>
@@ -4726,6 +4655,9 @@
4726
4655
  <xsl:otherwise>
4727
4656
  <xsl:element name="td">
4728
4657
  <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
4658
+ <xsl:if test="local-name()='th'">
4659
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
4660
+ </xsl:if>
4729
4661
  <xsl:apply-templates mode="simple-table-colspan"/>
4730
4662
  </xsl:element>
4731
4663
  </xsl:otherwise>
@@ -4855,8 +4787,14 @@
4855
4787
  <xsl:copy-of select="@*"/>
4856
4788
  <xsl:variable name="row_number" select="count(../preceding-sibling::*) + 1"/>
4857
4789
  <xsl:variable name="col_number" select="count(preceding-sibling::*) + 1"/>
4790
+ <xsl:variable name="divide">
4791
+ <xsl:choose>
4792
+ <xsl:when test="@divide"><xsl:value-of select="@divide"/></xsl:when>
4793
+ <xsl:otherwise>1</xsl:otherwise>
4794
+ </xsl:choose>
4795
+ </xsl:variable>
4858
4796
  <xsl:attribute name="id">
4859
- <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number)"/>
4797
+ <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_',$divide)"/>
4860
4798
  </xsl:attribute>
4861
4799
 
4862
4800
  <xsl:for-each select="*[local-name() = 'p']">
@@ -4864,10 +4802,12 @@
4864
4802
  <xsl:copy-of select="@*"/>
4865
4803
  <xsl:variable name="p_num" select="count(preceding-sibling::*[local-name() = 'p']) + 1"/>
4866
4804
  <xsl:attribute name="id">
4867
- <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_p_',$p_num)"/>
4805
+ <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_p_',$p_num,'_',$divide)"/>
4868
4806
  </xsl:attribute>
4869
4807
 
4870
- <xsl:copy-of select="node()"/>
4808
+ <!-- <xsl:copy-of select="node()" /> -->
4809
+ <xsl:apply-templates mode="simple-table-noid"/>
4810
+
4871
4811
  </xsl:copy>
4872
4812
  </xsl:for-each>
4873
4813
 
@@ -4896,7 +4836,7 @@
4896
4836
  <xsl:variable name="num" select="count(preceding-sibling::word) + 1"/>
4897
4837
  <xsl:copy>
4898
4838
  <xsl:attribute name="id">
4899
- <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_word_',$num)"/>
4839
+ <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_word_',$num,'_',$divide)"/>
4900
4840
  </xsl:attribute>
4901
4841
  <xsl:copy-of select="node()"/>
4902
4842
  </xsl:copy>
@@ -4905,6 +4845,24 @@
4905
4845
  </xsl:copy>
4906
4846
 
4907
4847
  </xsl:template>
4848
+
4849
+ <xsl:template match="*[local-name()='th' or local-name()='td']/*[local-name() = 'p']//*" mode="simple-table-noid">
4850
+ <xsl:copy>
4851
+ <xsl:choose>
4852
+ <xsl:when test="$isGenerateTableIF = 'true'">
4853
+ <xsl:copy-of select="@*[local-name() != 'id']"/> <!-- to prevent repeat id in colspan/rowspan cells -->
4854
+ <!-- <xsl:if test="local-name() = 'dl' or local-name() = 'table'">
4855
+ <xsl:copy-of select="@id"/>
4856
+ </xsl:if> -->
4857
+ </xsl:when>
4858
+ <xsl:otherwise>
4859
+ <xsl:copy-of select="@*"/>
4860
+ </xsl:otherwise>
4861
+ </xsl:choose>
4862
+ <xsl:apply-templates select="node()" mode="simple-table-noid"/>
4863
+ </xsl:copy>
4864
+ </xsl:template>
4865
+
4908
4866
  <!-- End mode: simple-table-id -->
4909
4867
  <!-- ===================== -->
4910
4868
  <!-- ===================== -->
@@ -4914,7 +4872,7 @@
4914
4872
  <!-- =============================== -->
4915
4873
  <xsl:template match="@*|node()" mode="td_text_with_formatting">
4916
4874
  <xsl:copy>
4917
- <xsl:apply-templates select="@*|node()" mode="td_text_with_formatting"/>
4875
+ <xsl:apply-templates select="@*|node()" mode="td_text_with_formatting"/>
4918
4876
  </xsl:copy>
4919
4877
  </xsl:template>
4920
4878
 
@@ -5028,6 +4986,10 @@
5028
4986
 
5029
4987
  <fo:inline xsl:use-attribute-sets="mathml-style">
5030
4988
 
4989
+ <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 -->
4990
+ <!-- <xsl:attribute name="padding-right">1mm</xsl:attribute> -->
4991
+ </xsl:if>
4992
+
5031
4993
  <xsl:call-template name="setTrackChangesStyles">
5032
4994
  <xsl:with-param name="isAdded" select="$isAdded"/>
5033
4995
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
@@ -6908,41 +6870,47 @@
6908
6870
  </fo:block>
6909
6871
  </xsl:template>
6910
6872
 
6911
- <xsl:template match="*[local-name() = 'inherit'] | *[local-name() = 'component'][@class = 'inherit']">
6873
+ <xsl:template match="*[local-name() = 'inherit'] | *[local-name() = 'component'][@class = 'inherit'] | *[local-name() = 'div'][@type = 'requirement-inherit'] | *[local-name() = 'div'][@type = 'recommendation-inherit'] | *[local-name() = 'div'][@type = 'permission-inherit']">
6912
6874
  <fo:block xsl:use-attribute-sets="inherit-style">
6913
6875
  <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
6914
6876
  </fo:block>
6915
6877
  </xsl:template>
6916
6878
 
6917
- <xsl:template match="*[local-name() = 'description'] | *[local-name() = 'component'][@class = 'description']">
6879
+ <xsl:template match="*[local-name() = 'description'] | *[local-name() = 'component'][@class = 'description'] | *[local-name() = 'div'][@type = 'requirement-description'] | *[local-name() = 'div'][@type = 'recommendation-description'] | *[local-name() = 'div'][@type = 'permission-description']">
6918
6880
  <fo:block xsl:use-attribute-sets="description-style">
6919
6881
  <xsl:apply-templates/>
6920
6882
  </fo:block>
6921
6883
  </xsl:template>
6922
6884
 
6923
- <xsl:template match="*[local-name() = 'specification'] | *[local-name() = 'component'][@class = 'specification']">
6885
+ <xsl:template match="*[local-name() = 'specification'] | *[local-name() = 'component'][@class = 'specification'] | *[local-name() = 'div'][@type = 'requirement-specification'] | *[local-name() = 'div'][@type = 'recommendation-specification'] | *[local-name() = 'div'][@type = 'permission-specification']">
6924
6886
  <fo:block xsl:use-attribute-sets="specification-style">
6925
6887
  <xsl:apply-templates/>
6926
6888
  </fo:block>
6927
6889
  </xsl:template>
6928
6890
 
6929
- <xsl:template match="*[local-name() = 'measurement-target'] | *[local-name() = 'component'][@class = 'measurement-target']">
6891
+ <xsl:template match="*[local-name() = 'measurement-target'] | *[local-name() = 'component'][@class = 'measurement-target'] | *[local-name() = 'div'][@type = 'requirement-measurement-target'] | *[local-name() = 'div'][@type = 'recommendation-measurement-target'] | *[local-name() = 'div'][@type = 'permission-measurement-target']">
6930
6892
  <fo:block xsl:use-attribute-sets="measurement-target-style">
6931
6893
  <xsl:apply-templates/>
6932
6894
  </fo:block>
6933
6895
  </xsl:template>
6934
6896
 
6935
- <xsl:template match="*[local-name() = 'verification'] | *[local-name() = 'component'][@class = 'verification']">
6897
+ <xsl:template match="*[local-name() = 'verification'] | *[local-name() = 'component'][@class = 'verification'] | *[local-name() = 'div'][@type = 'requirement-verification'] | *[local-name() = 'div'][@type = 'recommendation-verification'] | *[local-name() = 'div'][@type = 'permission-verification']">
6936
6898
  <fo:block xsl:use-attribute-sets="verification-style">
6937
6899
  <xsl:apply-templates/>
6938
6900
  </fo:block>
6939
6901
  </xsl:template>
6940
6902
 
6941
- <xsl:template match="*[local-name() = 'import'] | *[local-name() = 'component'][@class = 'import']">
6903
+ <xsl:template match="*[local-name() = 'import'] | *[local-name() = 'component'][@class = 'import'] | *[local-name() = 'div'][@type = 'requirement-import'] | *[local-name() = 'div'][@type = 'recommendation-import'] | *[local-name() = 'div'][@type = 'permission-import']">
6942
6904
  <fo:block xsl:use-attribute-sets="import-style">
6943
6905
  <xsl:apply-templates/>
6944
6906
  </fo:block>
6945
6907
  </xsl:template>
6908
+
6909
+ <xsl:template match="*[local-name() = 'div'][starts-with(@type, 'requirement-component')] | *[local-name() = 'div'][starts-with(@type, 'recommendation-component')] | *[local-name() = 'div'][starts-with(@type, 'permission-component')]">
6910
+ <fo:block xsl:use-attribute-sets="component-style">
6911
+ <xsl:apply-templates/>
6912
+ </fo:block>
6913
+ </xsl:template>
6946
6914
  <!-- ========== -->
6947
6915
  <!-- END -->
6948
6916
  <!-- ========== -->
@@ -6998,15 +6966,12 @@
6998
6966
 
6999
6967
  <xsl:template match="*[local-name()='tr']" mode="requirement">
7000
6968
  <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
7001
- <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
7002
- <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
7003
- </xsl:if>
7004
- <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
7005
- <xsl:attribute name="background-color">rgb(252, 246, 222)</xsl:attribute>
7006
- </xsl:if>
7007
- <xsl:if test="starts-with(*[local-name()='td'][1], 'Recommendation ')">
7008
- <xsl:attribute name="background-color">rgb(233, 235, 239)</xsl:attribute>
6969
+
6970
+ <xsl:if test="parent::*[local-name()='thead'] or starts-with(*[local-name()='td' or local-name()='th'][1], 'Requirement ') or starts-with(*[local-name()='td' or local-name()='th'][1], 'Recommendation ')">
6971
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
6972
+
7009
6973
  </xsl:if>
6974
+
7010
6975
  <xsl:apply-templates mode="requirement"/>
7011
6976
  </fo:table-row>
7012
6977
  </xsl:template>
@@ -8530,7 +8495,7 @@
8530
8495
  </tbody>
8531
8496
  </xsl:variable>
8532
8497
  <xsl:variable name="cols-count" select="count(xalan:nodeset($toc_table_simple)/*/tr[1]/td)"/>
8533
- <xsl:call-template name="calculate-column-widths">
8498
+ <xsl:call-template name="calculate-column-widths-proportional">
8534
8499
  <xsl:with-param name="cols-count" select="$cols-count"/>
8535
8500
  <xsl:with-param name="table" select="$toc_table_simple"/>
8536
8501
  </xsl:call-template>
@@ -673,8 +673,18 @@
673
673
 
674
674
  <xsl:param name="table_if_debug">false</xsl:param> <!-- set 'true' to put debug width data before table or dl -->
675
675
 
676
+ <xsl:variable name="isApplyAutolayoutAlgorithm_">
677
+ true
678
+ </xsl:variable>
679
+ <xsl:variable name="isApplyAutolayoutAlgorithm" select="normalize-space($isApplyAutolayoutAlgorithm_)"/>
680
+
676
681
  <xsl:variable name="isGenerateTableIF_">
677
- false
682
+ <xsl:choose>
683
+ <xsl:when test="$isApplyAutolayoutAlgorithm = 'true'">
684
+ <xsl:value-of select="normalize-space($table_if) = 'true'"/>
685
+ </xsl:when>
686
+ <xsl:otherwise>false</xsl:otherwise>
687
+ </xsl:choose>
678
688
  </xsl:variable>
679
689
  <xsl:variable name="isGenerateTableIF" select="normalize-space($isGenerateTableIF_)"/>
680
690
 
@@ -1087,6 +1097,9 @@
1087
1097
  <xsl:attribute-set name="import-style">
1088
1098
  </xsl:attribute-set>
1089
1099
 
1100
+ <xsl:attribute-set name="component-style">
1101
+ </xsl:attribute-set>
1102
+
1090
1103
  <xsl:attribute-set name="recommendation-style">
1091
1104
 
1092
1105
  </xsl:attribute-set>
@@ -1269,7 +1282,7 @@
1269
1282
  </xsl:attribute-set>
1270
1283
 
1271
1284
  <xsl:attribute-set name="dt-block-style">
1272
- <xsl:attribute name="margin-top">6pt</xsl:attribute>
1285
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
1273
1286
 
1274
1287
  </xsl:attribute-set>
1275
1288
 
@@ -2229,6 +2242,7 @@
2229
2242
 
2230
2243
  <xsl:variable name="margin-side">
2231
2244
  <xsl:choose>
2245
+ <xsl:when test="$isApplyAutolayoutAlgorithm = 'true'">0</xsl:when>
2232
2246
  <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2233
2247
  <xsl:otherwise>0</xsl:otherwise>
2234
2248
  </xsl:choose>
@@ -2297,6 +2311,7 @@
2297
2311
  </td>
2298
2312
  </tr>
2299
2313
  -->
2314
+ <!-- Simple_table=<xsl:copy-of select="$simple-table"/> -->
2300
2315
  <xsl:apply-templates select="xalan:nodeset($simple-table)" mode="process_table-if"/>
2301
2316
 
2302
2317
  </xsl:when>
@@ -2431,12 +2446,17 @@
2431
2446
  <xsl:template name="calculate-column-widths">
2432
2447
  <xsl:param name="table"/>
2433
2448
  <xsl:param name="cols-count"/>
2434
-
2449
+ <xsl:choose>
2450
+ <xsl:when test="$isApplyAutolayoutAlgorithm = 'true'">
2451
+ <xsl:call-template name="get-calculated-column-widths-autolayout-algorithm"/>
2452
+ </xsl:when>
2453
+ <xsl:otherwise>
2435
2454
  <xsl:call-template name="calculate-column-widths-proportional">
2436
2455
  <xsl:with-param name="cols-count" select="$cols-count"/>
2437
2456
  <xsl:with-param name="table" select="$table"/>
2438
2457
  </xsl:call-template>
2439
-
2458
+ </xsl:otherwise>
2459
+ </xsl:choose>
2440
2460
  </xsl:template>
2441
2461
 
2442
2462
  <!-- ================================================== -->
@@ -2614,6 +2634,7 @@
2614
2634
  <!-- (https://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.5.2) -->
2615
2635
  <!-- ================================================== -->
2616
2636
 
2637
+ <!-- INPUT: table with columns widths, generated by table_if.xsl -->
2617
2638
  <xsl:template name="calculate-column-widths-autolayout-algorithm">
2618
2639
  <xsl:param name="parent_table_page-width"/> <!-- for nested tables, in re-calculate step -->
2619
2640
 
@@ -2625,67 +2646,6 @@
2625
2646
 
2626
2647
  <!-- Since line wrap has been disabled, paragraphs are treated as long lines unless broken by BR elements. -->
2627
2648
 
2628
- <!-- get current table id -->
2629
- <xsl:variable name="table_id" select="@id"/>
2630
- <!-- find table by id in the file 'table_widths' -->
2631
- <!-- <xsl:variable name="table-if_" select="$table_widths_from_if//table[@id = $table_id]"/>
2632
- <xsl:variable name="table-if" select="xalan:nodeset($table-if_)"/> -->
2633
-
2634
- <!-- table='<xsl:copy-of select="$table"/>' -->
2635
- <!-- table_id='<xsl:value-of select="$table_id"/>\ -->
2636
- <!-- table-if='<xsl:copy-of select="$table-if"/>' -->
2637
- <!-- table_widths_from_if='<xsl:copy-of select="$table_widths_from_if"/>' -->
2638
-
2639
- <xsl:variable name="table_with_cell_widths_">
2640
- <xsl:apply-templates select="." mode="determine_cell_widths-if"/> <!-- read column's width from IF -->
2641
- </xsl:variable>
2642
- <xsl:variable name="table_with_cell_widths" select="xalan:nodeset($table_with_cell_widths_)"/>
2643
-
2644
- <!-- <xsl:if test="$table_if_debug = 'true'">
2645
- <xsl:copy-of select="$table_with_cell_widths"/>
2646
- </xsl:if> -->
2647
-
2648
- <!-- The minimum and maximum cell widths are then used to determine the corresponding minimum and maximum widths for the columns. -->
2649
-
2650
- <xsl:variable name="column_widths_">
2651
- <!-- iteration of columns -->
2652
- <xsl:for-each select="$table_with_cell_widths//tr[1]/td">
2653
- <xsl:variable name="pos" select="position()"/>
2654
- <column>
2655
- <xsl:attribute name="width_max">
2656
- <xsl:for-each select="ancestor::tbody//tr/td[$pos]/@width_max">
2657
- <xsl:sort select="." data-type="number" order="descending"/>
2658
- <xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
2659
- </xsl:for-each>
2660
- </xsl:attribute>
2661
- <xsl:attribute name="width_min">
2662
- <xsl:for-each select="ancestor::tbody//tr/td[$pos]/@width_min">
2663
- <xsl:sort select="." data-type="number" order="descending"/>
2664
- <xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
2665
- </xsl:for-each>
2666
- </xsl:attribute>
2667
- </column>
2668
- </xsl:for-each>
2669
- </xsl:variable>
2670
- <xsl:variable name="column_widths" select="xalan:nodeset($column_widths_)"/>
2671
-
2672
- <!-- <column_widths>
2673
- <xsl:copy-of select="$column_widths"/>
2674
- </column_widths> -->
2675
-
2676
- <!-- These in turn, are used to find the minimum and maximum width for the table. -->
2677
- <xsl:variable name="table_widths_">
2678
- <table>
2679
- <xsl:attribute name="width_max">
2680
- <xsl:value-of select="sum($column_widths/column/@width_max)"/>
2681
- </xsl:attribute>
2682
- <xsl:attribute name="width_min">
2683
- <xsl:value-of select="sum($column_widths/column/@width_min)"/>
2684
- </xsl:attribute>
2685
- </table>
2686
- </xsl:variable>
2687
- <xsl:variable name="table_widths" select="xalan:nodeset($table_widths_)"/>
2688
-
2689
2649
  <xsl:variable name="page_width">
2690
2650
  <xsl:choose>
2691
2651
  <xsl:when test="$parent_table_page-width != ''">
@@ -2698,16 +2658,13 @@
2698
2658
  </xsl:variable>
2699
2659
 
2700
2660
  <xsl:if test="$table_if_debug = 'true'">
2701
- <table_width>
2702
- <xsl:copy-of select="$table_widths"/>
2703
- </table_width>
2704
- <debug>$page_width=<xsl:value-of select="$page_width"/></debug>
2661
+ <page_width><xsl:value-of select="$page_width"/></page_width>
2705
2662
  </xsl:if>
2706
2663
 
2707
2664
  <!-- There are three cases: -->
2708
2665
  <xsl:choose>
2709
2666
  <!-- 1. The minimum table width is equal to or wider than the available space -->
2710
- <xsl:when test="$table_widths/table/@width_min &gt;= $page_width and 1 = 2"> <!-- this condition isn't working see case 3 below -->
2667
+ <xsl:when test="@width_min &gt;= $page_width and 1 = 2"> <!-- this condition isn't working see case 3 below -->
2711
2668
  <!-- call old algorithm -->
2712
2669
  <case1/>
2713
2670
  <!-- <xsl:variable name="cols-count" select="count(xalan:nodeset($table)/*/tr[1]/td)"/>
@@ -2717,10 +2674,10 @@
2717
2674
  </xsl:call-template> -->
2718
2675
  </xsl:when>
2719
2676
  <!-- 2. The maximum table width fits within the available space. In this case, set the columns to their maximum widths. -->
2720
- <xsl:when test="$table_widths/table/@width_max &lt;= $page_width">
2677
+ <xsl:when test="@width_max &lt;= $page_width">
2721
2678
  <case2/>
2722
2679
  <autolayout/>
2723
- <xsl:for-each select="$column_widths/column/@width_max">
2680
+ <xsl:for-each select="column/@width_max">
2724
2681
  <column divider="100"><xsl:value-of select="."/></column>
2725
2682
  </xsl:for-each>
2726
2683
  </xsl:when>
@@ -2730,19 +2687,19 @@
2730
2687
  For each column, let d be the difference between maximum and minimum width of that column.
2731
2688
  Now set the column's width to the minimum width plus d times W over D.
2732
2689
  This makes columns with large differences between minimum and maximum widths wider than columns with smaller differences. -->
2733
- <xsl:when test="($table_widths/table/@width_max &gt; $page_width and $table_widths/table/@width_min &lt; $page_width) or ($table_widths/table/@width_min &gt;= $page_width)">
2690
+ <xsl:when test="(@width_max &gt; $page_width and @width_min &lt; $page_width) or (@width_min &gt;= $page_width)">
2734
2691
  <!-- difference between the available space and the minimum table width -->
2735
- <xsl:variable name="W" select="$page_width - $table_widths/table/@width_min"/>
2692
+ <xsl:variable name="W" select="$page_width - @width_min"/>
2736
2693
  <W><xsl:value-of select="$W"/></W>
2737
2694
  <!-- difference between maximum and minimum width of the table -->
2738
- <xsl:variable name="D" select="$table_widths/table/@width_max - $table_widths/table/@width_min"/>
2695
+ <xsl:variable name="D" select="@width_max - @width_min"/>
2739
2696
  <D><xsl:value-of select="$D"/></D>
2740
2697
  <case3/>
2741
2698
  <autolayout/>
2742
- <xsl:if test="$table_widths/table/@width_min &gt;= $page_width">
2699
+ <xsl:if test="@width_min &gt;= $page_width">
2743
2700
  <split_keep-within-line>true</split_keep-within-line>
2744
2701
  </xsl:if>
2745
- <xsl:for-each select="$column_widths/column">
2702
+ <xsl:for-each select="column">
2746
2703
  <!-- difference between maximum and minimum width of that column. -->
2747
2704
  <xsl:variable name="d" select="@width_max - @width_min"/>
2748
2705
  <d><xsl:value-of select="$d"/></d>
@@ -2768,23 +2725,39 @@
2768
2725
 
2769
2726
  <parent_element><xsl:value-of select="local-name(..)"/></parent_element>
2770
2727
 
2728
+ <ancestor_tree>
2729
+ <xsl:for-each select="ancestor::*">
2730
+ <ancestor><xsl:value-of select="local-name()"/></ancestor>
2731
+ </xsl:for-each>
2732
+ </ancestor_tree>
2733
+
2771
2734
  <xsl:variable name="parent_table_page-width_">
2772
2735
  <xsl:if test="$parent_table_id != ''">
2773
2736
  <!-- determine column number in the parent table -->
2774
2737
  <xsl:variable name="parent_table_column_number">
2775
2738
  <xsl:choose>
2776
- <xsl:when test="parent::*[local-name() = 'dd']">2</xsl:when>
2739
+ <!-- <xsl:when test="parent::*[local-name() = 'dd']">2</xsl:when> -->
2740
+ <xsl:when test="(ancestor::*[local-name() = 'dd' or local-name() = 'table' or local-name() = 'dl'])[last()][local-name() = 'dd' or local-name() = 'dl']">2</xsl:when>
2777
2741
  <xsl:otherwise> <!-- parent is table -->
2778
2742
  <xsl:value-of select="count(ancestor::*[local-name() = 'td'][1]/preceding-sibling::*[local-name() = 'td']) + 1"/>
2779
2743
  </xsl:otherwise>
2780
2744
  </xsl:choose>
2781
2745
  </xsl:variable>
2782
2746
  <!-- find table by id in the file 'table_widths' and get all Nth `<column>...</column> -->
2783
- <xsl:value-of select="$table_widths_from_if_calculated//table[@id = $parent_table_id]/column[number($parent_table_column_number)]"/>
2747
+
2748
+ <xsl:variable name="parent_table_column_" select="$table_widths_from_if_calculated//table[@id = $parent_table_id]/column[number($parent_table_column_number)]"/>
2749
+ <xsl:variable name="parent_table_column" select="xalan:nodeset($parent_table_column_)"/>
2750
+ <!-- <xsl:variable name="divider">
2751
+ <xsl:value-of select="$parent_table_column/@divider"/>
2752
+ <xsl:if test="not($parent_table_column/@divider)">1</xsl:if>
2753
+ </xsl:variable> -->
2754
+ <xsl:value-of select="$parent_table_column/text()"/> <!-- * 10 -->
2784
2755
  </xsl:if>
2785
2756
  </xsl:variable>
2786
2757
  <xsl:variable name="parent_table_page-width" select="normalize-space($parent_table_page-width_)"/>
2787
2758
 
2759
+ <parent_table_page-width><xsl:value-of select="$parent_table_page-width"/></parent_table_page-width>
2760
+
2788
2761
  <!-- get current table id -->
2789
2762
  <xsl:variable name="table_id" select="@id"/>
2790
2763
 
@@ -2805,50 +2778,6 @@
2805
2778
 
2806
2779
  </xsl:template> <!-- get-calculated-column-widths-autolayout-algorithm -->
2807
2780
 
2808
- <!-- ============================= -->
2809
- <!-- mode: determine_cell_widths-if -->
2810
- <!-- ============================= -->
2811
- <xsl:template match="@*|node()" mode="determine_cell_widths-if">
2812
- <xsl:copy>
2813
- <xsl:apply-templates select="@*|node()" mode="determine_cell_widths-if"/>
2814
- </xsl:copy>
2815
- </xsl:template>
2816
-
2817
- <xsl:template match="td | th" mode="determine_cell_widths-if">
2818
- <xsl:copy>
2819
- <xsl:copy-of select="@*"/>
2820
-
2821
- <!-- The maximum width is given by the widest line. -->
2822
- <xsl:attribute name="width_max">
2823
- <xsl:for-each select="p_len">
2824
- <xsl:sort select="." data-type="number" order="descending"/>
2825
- <xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
2826
- </xsl:for-each>
2827
- </xsl:attribute>
2828
-
2829
- <!-- The minimum width is given by the widest text element (word, image, etc.) -->
2830
- <xsl:variable name="width_min">
2831
- <xsl:for-each select="word_len">
2832
- <xsl:sort select="." data-type="number" order="descending"/>
2833
- <xsl:if test="position() = 1"><xsl:value-of select="."/></xsl:if>
2834
- </xsl:for-each>
2835
- </xsl:variable>
2836
- <xsl:attribute name="width_min">
2837
- <xsl:value-of select="$width_min"/>
2838
- </xsl:attribute>
2839
-
2840
- <xsl:if test="$width_min = 0">
2841
- <xsl:attribute name="width_min">1</xsl:attribute>
2842
- </xsl:if>
2843
-
2844
- <xsl:apply-templates select="node()" mode="determine_cell_widths-if"/>
2845
-
2846
- </xsl:copy>
2847
- </xsl:template>
2848
- <!-- ============================= -->
2849
- <!-- END mode: determine_cell_widths-if -->
2850
- <!-- ============================= -->
2851
-
2852
2781
  <!-- ================================================== -->
2853
2782
  <!-- Calculate column's width based on HTML4 algorithm -->
2854
2783
  <!-- ================================================== -->
@@ -3039,6 +2968,7 @@
3039
2968
  <xsl:when test="$table_or_dl = 'table'">
3040
2969
  <xsl:for-each select="*[local-name() = 'td' or local-name() = 'th']/*">
3041
2970
  <fo:table-row number-columns-spanned="{$col_count}">
2971
+ <xsl:copy-of select="../@font-weight"/>
3042
2972
  <!-- <test_table><xsl:copy-of select="."/></test_table> -->
3043
2973
  <xsl:call-template name="td"/>
3044
2974
  </fo:table-row>
@@ -3185,7 +3115,7 @@
3185
3115
 
3186
3116
  <xsl:apply-templates/>
3187
3117
 
3188
- <xsl:if test="$isGenerateTableIF = 'true'"><fo:inline id="{@id}_end">end</fo:inline></xsl:if> <!-- to determine width of text --> <!-- <xsl:value-of select="$hair_space"/> -->
3118
+ <xsl:if test="$isGenerateTableIF = 'true'"> <fo:inline id="{@id}_end">end</fo:inline></xsl:if> <!-- to determine width of text --> <!-- <xsl:value-of select="$hair_space"/> -->
3189
3119
 
3190
3120
  </fo:block>
3191
3121
  </fo:table-cell>
@@ -3511,6 +3441,7 @@
3511
3441
  <xsl:template match="*[local-name()='dl']">
3512
3442
  <xsl:variable name="isAdded" select="@added"/>
3513
3443
  <xsl:variable name="isDeleted" select="@deleted"/>
3444
+ <!-- <dl><xsl:copy-of select="."/></dl> -->
3514
3445
  <fo:block-container>
3515
3446
 
3516
3447
  <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
@@ -4044,21 +3975,16 @@
4044
3975
  <!-- virtual html table for dl/[dt and dd] for IF (Intermediate Format) -->
4045
3976
  <xsl:template match="*[local-name()='dt']" mode="dl_if">
4046
3977
  <xsl:param name="id"/>
4047
- <xsl:variable name="row_number" select="count(preceding-sibling::*[local-name()='dt']) + 1"/>
4048
3978
  <tr>
4049
3979
  <td>
4050
3980
  <xsl:copy-of select="node()"/>
4051
3981
  </td>
4052
3982
  <td>
4053
-
4054
- <xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]"/>
4055
-
4056
- <!-- get paragraphs from nested 'dl' -->
4057
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]/*[local-name() = 'dl']" mode="dl_if_nested"/>
4058
-
3983
+ <xsl:copy-of select="following-sibling::*[local-name()='dd'][1]/node()[not(local-name() = 'dl')]"/>
3984
+ <!-- get paragraphs from nested 'dl' -->
3985
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]/*[local-name() = 'dl']" mode="dl_if_nested"/>
4059
3986
  </td>
4060
3987
  </tr>
4061
-
4062
3988
  </xsl:template>
4063
3989
  <xsl:template match="*[local-name()='dd']" mode="dl_if"/>
4064
3990
 
@@ -4714,6 +4640,9 @@
4714
4640
  <xsl:variable name="td">
4715
4641
  <xsl:element name="td">
4716
4642
  <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
4643
+ <xsl:if test="local-name()='th'">
4644
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
4645
+ </xsl:if>
4717
4646
  <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
4718
4647
  <xsl:apply-templates mode="simple-table-colspan"/>
4719
4648
  </xsl:element>
@@ -4726,6 +4655,9 @@
4726
4655
  <xsl:otherwise>
4727
4656
  <xsl:element name="td">
4728
4657
  <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
4658
+ <xsl:if test="local-name()='th'">
4659
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
4660
+ </xsl:if>
4729
4661
  <xsl:apply-templates mode="simple-table-colspan"/>
4730
4662
  </xsl:element>
4731
4663
  </xsl:otherwise>
@@ -4855,8 +4787,14 @@
4855
4787
  <xsl:copy-of select="@*"/>
4856
4788
  <xsl:variable name="row_number" select="count(../preceding-sibling::*) + 1"/>
4857
4789
  <xsl:variable name="col_number" select="count(preceding-sibling::*) + 1"/>
4790
+ <xsl:variable name="divide">
4791
+ <xsl:choose>
4792
+ <xsl:when test="@divide"><xsl:value-of select="@divide"/></xsl:when>
4793
+ <xsl:otherwise>1</xsl:otherwise>
4794
+ </xsl:choose>
4795
+ </xsl:variable>
4858
4796
  <xsl:attribute name="id">
4859
- <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number)"/>
4797
+ <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_',$divide)"/>
4860
4798
  </xsl:attribute>
4861
4799
 
4862
4800
  <xsl:for-each select="*[local-name() = 'p']">
@@ -4864,10 +4802,12 @@
4864
4802
  <xsl:copy-of select="@*"/>
4865
4803
  <xsl:variable name="p_num" select="count(preceding-sibling::*[local-name() = 'p']) + 1"/>
4866
4804
  <xsl:attribute name="id">
4867
- <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_p_',$p_num)"/>
4805
+ <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_p_',$p_num,'_',$divide)"/>
4868
4806
  </xsl:attribute>
4869
4807
 
4870
- <xsl:copy-of select="node()"/>
4808
+ <!-- <xsl:copy-of select="node()" /> -->
4809
+ <xsl:apply-templates mode="simple-table-noid"/>
4810
+
4871
4811
  </xsl:copy>
4872
4812
  </xsl:for-each>
4873
4813
 
@@ -4896,7 +4836,7 @@
4896
4836
  <xsl:variable name="num" select="count(preceding-sibling::word) + 1"/>
4897
4837
  <xsl:copy>
4898
4838
  <xsl:attribute name="id">
4899
- <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_word_',$num)"/>
4839
+ <xsl:value-of select="concat($id,'_',$row_number,'_',$col_number,'_word_',$num,'_',$divide)"/>
4900
4840
  </xsl:attribute>
4901
4841
  <xsl:copy-of select="node()"/>
4902
4842
  </xsl:copy>
@@ -4905,6 +4845,24 @@
4905
4845
  </xsl:copy>
4906
4846
 
4907
4847
  </xsl:template>
4848
+
4849
+ <xsl:template match="*[local-name()='th' or local-name()='td']/*[local-name() = 'p']//*" mode="simple-table-noid">
4850
+ <xsl:copy>
4851
+ <xsl:choose>
4852
+ <xsl:when test="$isGenerateTableIF = 'true'">
4853
+ <xsl:copy-of select="@*[local-name() != 'id']"/> <!-- to prevent repeat id in colspan/rowspan cells -->
4854
+ <!-- <xsl:if test="local-name() = 'dl' or local-name() = 'table'">
4855
+ <xsl:copy-of select="@id"/>
4856
+ </xsl:if> -->
4857
+ </xsl:when>
4858
+ <xsl:otherwise>
4859
+ <xsl:copy-of select="@*"/>
4860
+ </xsl:otherwise>
4861
+ </xsl:choose>
4862
+ <xsl:apply-templates select="node()" mode="simple-table-noid"/>
4863
+ </xsl:copy>
4864
+ </xsl:template>
4865
+
4908
4866
  <!-- End mode: simple-table-id -->
4909
4867
  <!-- ===================== -->
4910
4868
  <!-- ===================== -->
@@ -4914,7 +4872,7 @@
4914
4872
  <!-- =============================== -->
4915
4873
  <xsl:template match="@*|node()" mode="td_text_with_formatting">
4916
4874
  <xsl:copy>
4917
- <xsl:apply-templates select="@*|node()" mode="td_text_with_formatting"/>
4875
+ <xsl:apply-templates select="@*|node()" mode="td_text_with_formatting"/>
4918
4876
  </xsl:copy>
4919
4877
  </xsl:template>
4920
4878
 
@@ -5028,6 +4986,10 @@
5028
4986
 
5029
4987
  <fo:inline xsl:use-attribute-sets="mathml-style">
5030
4988
 
4989
+ <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 -->
4990
+ <!-- <xsl:attribute name="padding-right">1mm</xsl:attribute> -->
4991
+ </xsl:if>
4992
+
5031
4993
  <xsl:call-template name="setTrackChangesStyles">
5032
4994
  <xsl:with-param name="isAdded" select="$isAdded"/>
5033
4995
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
@@ -6908,41 +6870,47 @@
6908
6870
  </fo:block>
6909
6871
  </xsl:template>
6910
6872
 
6911
- <xsl:template match="*[local-name() = 'inherit'] | *[local-name() = 'component'][@class = 'inherit']">
6873
+ <xsl:template match="*[local-name() = 'inherit'] | *[local-name() = 'component'][@class = 'inherit'] | *[local-name() = 'div'][@type = 'requirement-inherit'] | *[local-name() = 'div'][@type = 'recommendation-inherit'] | *[local-name() = 'div'][@type = 'permission-inherit']">
6912
6874
  <fo:block xsl:use-attribute-sets="inherit-style">
6913
6875
  <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
6914
6876
  </fo:block>
6915
6877
  </xsl:template>
6916
6878
 
6917
- <xsl:template match="*[local-name() = 'description'] | *[local-name() = 'component'][@class = 'description']">
6879
+ <xsl:template match="*[local-name() = 'description'] | *[local-name() = 'component'][@class = 'description'] | *[local-name() = 'div'][@type = 'requirement-description'] | *[local-name() = 'div'][@type = 'recommendation-description'] | *[local-name() = 'div'][@type = 'permission-description']">
6918
6880
  <fo:block xsl:use-attribute-sets="description-style">
6919
6881
  <xsl:apply-templates/>
6920
6882
  </fo:block>
6921
6883
  </xsl:template>
6922
6884
 
6923
- <xsl:template match="*[local-name() = 'specification'] | *[local-name() = 'component'][@class = 'specification']">
6885
+ <xsl:template match="*[local-name() = 'specification'] | *[local-name() = 'component'][@class = 'specification'] | *[local-name() = 'div'][@type = 'requirement-specification'] | *[local-name() = 'div'][@type = 'recommendation-specification'] | *[local-name() = 'div'][@type = 'permission-specification']">
6924
6886
  <fo:block xsl:use-attribute-sets="specification-style">
6925
6887
  <xsl:apply-templates/>
6926
6888
  </fo:block>
6927
6889
  </xsl:template>
6928
6890
 
6929
- <xsl:template match="*[local-name() = 'measurement-target'] | *[local-name() = 'component'][@class = 'measurement-target']">
6891
+ <xsl:template match="*[local-name() = 'measurement-target'] | *[local-name() = 'component'][@class = 'measurement-target'] | *[local-name() = 'div'][@type = 'requirement-measurement-target'] | *[local-name() = 'div'][@type = 'recommendation-measurement-target'] | *[local-name() = 'div'][@type = 'permission-measurement-target']">
6930
6892
  <fo:block xsl:use-attribute-sets="measurement-target-style">
6931
6893
  <xsl:apply-templates/>
6932
6894
  </fo:block>
6933
6895
  </xsl:template>
6934
6896
 
6935
- <xsl:template match="*[local-name() = 'verification'] | *[local-name() = 'component'][@class = 'verification']">
6897
+ <xsl:template match="*[local-name() = 'verification'] | *[local-name() = 'component'][@class = 'verification'] | *[local-name() = 'div'][@type = 'requirement-verification'] | *[local-name() = 'div'][@type = 'recommendation-verification'] | *[local-name() = 'div'][@type = 'permission-verification']">
6936
6898
  <fo:block xsl:use-attribute-sets="verification-style">
6937
6899
  <xsl:apply-templates/>
6938
6900
  </fo:block>
6939
6901
  </xsl:template>
6940
6902
 
6941
- <xsl:template match="*[local-name() = 'import'] | *[local-name() = 'component'][@class = 'import']">
6903
+ <xsl:template match="*[local-name() = 'import'] | *[local-name() = 'component'][@class = 'import'] | *[local-name() = 'div'][@type = 'requirement-import'] | *[local-name() = 'div'][@type = 'recommendation-import'] | *[local-name() = 'div'][@type = 'permission-import']">
6942
6904
  <fo:block xsl:use-attribute-sets="import-style">
6943
6905
  <xsl:apply-templates/>
6944
6906
  </fo:block>
6945
6907
  </xsl:template>
6908
+
6909
+ <xsl:template match="*[local-name() = 'div'][starts-with(@type, 'requirement-component')] | *[local-name() = 'div'][starts-with(@type, 'recommendation-component')] | *[local-name() = 'div'][starts-with(@type, 'permission-component')]">
6910
+ <fo:block xsl:use-attribute-sets="component-style">
6911
+ <xsl:apply-templates/>
6912
+ </fo:block>
6913
+ </xsl:template>
6946
6914
  <!-- ========== -->
6947
6915
  <!-- END -->
6948
6916
  <!-- ========== -->
@@ -6998,15 +6966,12 @@
6998
6966
 
6999
6967
  <xsl:template match="*[local-name()='tr']" mode="requirement">
7000
6968
  <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
7001
- <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
7002
- <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
7003
- </xsl:if>
7004
- <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
7005
- <xsl:attribute name="background-color">rgb(252, 246, 222)</xsl:attribute>
7006
- </xsl:if>
7007
- <xsl:if test="starts-with(*[local-name()='td'][1], 'Recommendation ')">
7008
- <xsl:attribute name="background-color">rgb(233, 235, 239)</xsl:attribute>
6969
+
6970
+ <xsl:if test="parent::*[local-name()='thead'] or starts-with(*[local-name()='td' or local-name()='th'][1], 'Requirement ') or starts-with(*[local-name()='td' or local-name()='th'][1], 'Recommendation ')">
6971
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
6972
+
7009
6973
  </xsl:if>
6974
+
7010
6975
  <xsl:apply-templates mode="requirement"/>
7011
6976
  </fo:table-row>
7012
6977
  </xsl:template>
@@ -8530,7 +8495,7 @@
8530
8495
  </tbody>
8531
8496
  </xsl:variable>
8532
8497
  <xsl:variable name="cols-count" select="count(xalan:nodeset($toc_table_simple)/*/tr[1]/td)"/>
8533
- <xsl:call-template name="calculate-column-widths">
8498
+ <xsl:call-template name="calculate-column-widths-proportional">
8534
8499
  <xsl:with-param name="cols-count" select="$cols-count"/>
8535
8500
  <xsl:with-param name="table" select="$toc_table_simple"/>
8536
8501
  </xsl:call-template>
@@ -225,9 +225,9 @@
225
225
  <zeroOrMore>
226
226
  <ref name="forename"/>
227
227
  </zeroOrMore>
228
- <zeroOrMore>
229
- <ref name="initial"/>
230
- </zeroOrMore>
228
+ <optional>
229
+ <ref name="formatted-initials"/>
230
+ </optional>
231
231
  <ref name="surname"/>
232
232
  <zeroOrMore>
233
233
  <ref name="addition"/>
@@ -247,8 +247,8 @@
247
247
  <ref name="LocalizedString"/>
248
248
  </element>
249
249
  </define>
250
- <define name="initial">
251
- <element name="initial">
250
+ <define name="formatted-initials">
251
+ <element name="formatted-initials">
252
252
  <ref name="LocalizedString"/>
253
253
  </element>
254
254
  </define>
@@ -264,6 +264,9 @@
264
264
  </define>
265
265
  <define name="forename">
266
266
  <element name="forename">
267
+ <optional>
268
+ <attribute name="initial"/>
269
+ </optional>
267
270
  <ref name="LocalizedString"/>
268
271
  </element>
269
272
  </define>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module M3AAWG
3
- VERSION = "2.1.6".freeze
3
+ VERSION = "2.1.8.1".freeze
4
4
  end
5
5
  end
@@ -5,8 +5,9 @@ require_relative "isodoc/m3aawg/word_convert"
5
5
  require_relative "isodoc/m3aawg/pdf_convert"
6
6
  require_relative "isodoc/m3aawg/presentation_xml_convert"
7
7
  require_relative "metanorma/m3aawg/version"
8
+ require "metanorma"
8
9
 
9
- if defined? Metanorma
10
+ if defined? Metanorma::Registry
10
11
  require_relative "metanorma/m3aawg"
11
12
  Metanorma::Registry.instance.register(Metanorma::M3AAWG::Processor)
12
13
  end
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-m3aawg
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.6
4
+ version: 2.1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-08 00:00:00.000000000 Z
11
+ date: 2022-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: htmlentities
@@ -205,6 +205,7 @@ extensions: []
205
205
  extra_rdoc_files: []
206
206
  files:
207
207
  - ".github/workflows/rake.yml"
208
+ - ".github/workflows/release.yml"
208
209
  - ".gitignore"
209
210
  - ".hound.yml"
210
211
  - ".rubocop.yml"
@@ -255,13 +256,13 @@ files:
255
256
  - lib/metanorma/m3aawg/processor.rb
256
257
  - lib/metanorma/m3aawg/reqt.rng
257
258
  - lib/metanorma/m3aawg/version.rb
258
- - metanorma-m3d.gemspec
259
+ - metanorma-m3aawg.gemspec
259
260
  - metanorma.yml
260
261
  homepage: https://github.com/metanorma/metanorma-m3aawg
261
262
  licenses:
262
263
  - BSD-2-Clause
263
264
  metadata: {}
264
- post_install_message:
265
+ post_install_message:
265
266
  rdoc_options: []
266
267
  require_paths:
267
268
  - lib
@@ -276,8 +277,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
276
277
  - !ruby/object:Gem::Version
277
278
  version: '0'
278
279
  requirements: []
279
- rubygems_version: 3.3.16
280
- signing_key:
280
+ rubygems_version: 3.1.6
281
+ signing_key:
281
282
  specification_version: 4
282
283
  summary: metanorma-m3d lets you write M3AAWG Documents in AsciiDoc.
283
284
  test_files: []