Попытка стилизовать псевдо-вложенный список в XSL-FO - PullRequest
0 голосов
/ 25 февраля 2011

Я действительно начинаю любить XSL-FO и начинаю, возможно, начинать добираться туда, где я хочу быть с точки зрения оформления этих документов, но я немного заморозился с попыткой эмулировать списки.

В XML, с которым мне приходится работать, не используются списки DITA, и нам пришлось выдумывать его, чтобы передать в XPP, а затем в Интернет и теперь в LiveContent SDL.

Это разметка, которую я имею для списка:

<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.

Может кто-нибудь дать мне несколько идей, как их оформить.

Большое спасибо (еще раз).

Хедли Филлипс

1 Ответ

1 голос
/ 25 февраля 2011

Предлагаемый подход:

  1. Создайте небольшой документ от руки , содержащий нужную вам разметку XSL-FO.Используйте доступные конструкции списка :

    • fo: list-block
    • fo: list-item
    • fo: list-item-body
    • fo: list-item-label
  2. Если у вас есть что-то, что работает, начните разработку таблицы стилей, которая производит требуемую разметку.

...