试图在XSL-FO中设置伪嵌套列表的样式

时间:2011-02-25 17:08:11

标签: xsl-fo

我真的开始喜欢XSL-FO,而且开始可能会开始在样式化这些文档方面达到我想要的位置但是我试图模仿列表时有点大脑冻结

我必须使用的XML不使用DITA列表,我们不得不捏造它进入XPP然后进入网络,现在进入SDL的LiveContent。

这是我列出的标记:

<p outputclass="LC NText"><b>[12]</b>&#x00A0;&#x00A0;&#x00A0;On 24&#x00A0;October 2006, following a second CMC on 23&#x00A0;October 2006, XXXXXX, by this stage legally represented, made its application for disclosure. The application requests disclosure of the following documents:</p> 
<p outputclass="LC"><ph outputclass="NList1_num">(a)</ph><ph outputclass="NList1_text">the minute of the case review meeting;</ph></p> 
<p outputclass="LC"><ph outputclass="NList1_num">(b)</ph><ph outputclass="NList1_text">Mr&#x00A0;Mayock&#x2019;s memorandum regarding his review of the case;</ph></p> 
<p outputclass="LC"><ph outputclass="NList1_num">(c)</ph><ph outputclass="NList1_text">Mr&#x00A0;Priddis&#x2019; memorandum;</ph></p> 
<p outputclass="LC"><ph outputclass="NList1_num">(d)</ph><ph outputclass="NList1_text">the final draft of the case closure letter to be sent by Mr&#x00A0;Mayock;</ph></p> 
<p outputclass="LC"><ph outputclass="NList1_num">(e)</ph><ph outputclass="NList1_text">the draft summary of final comments from interested parties received in connection with the OFT&#x2019;s provisional decision to close its investigations.</ph></p> 

我需要将outputclass =“NList1_num”和outputclass =“NList1_text”缩进一个特定的数量(我们还有NList * _,其中*是2,3,4等等,用于进一步缩进的嵌套列表)。

我试过了:

<xsl:template match="*[contains(@outputclass,'NList1_')]">
        <fo:block text-indent="2em">
        <fo:inline background-color="red">
            <xsl:apply-templates/>
        </fo:inline>
        </fo:block>
    </xsl:template>

但是这会显示它,NList1_num在一行上缩进,NList1_text在下一行上具有相同的缩进。我希望他们两个都在普通列表的同一行。

我试过fo:inline但发现我无法对这些应用缩进或余量,而是必须使用fo:block。

有人可以给我一些如何获得这些风格的想法。

非常感谢(再次)。

Hedley Phillips

1 个答案:

答案 0 :(得分:1)

建议的方法:

  1. 创建一个小文档,手动,其中包含您需要的XSL-FO标记。利用available list constructs

    • FO:列表块
    • FO:列表项
    • FO:列表项体
    • FO:列表项标签
  2. 当你有一些有用的东西时,开始开发产生所需标记的样式表。