Я использую FOP 2.3, и у меня есть следующее:
<book>
<chapter>
<title>ChA</title>
<section>
<title>Structures</title>
<xi:include href="struct1.xml"/>
</section>
<section>
<title>Functions</title>
<xi:include href="function1.xml"/>
</section>
</chapter>
</book>
Для function1.xml
(как пример), у меня есть:
<refentry xml:id="some_func" version="5.0">
<refmeta>
<refentrytitle>SomeFunc</refentrytitle>
</refmeta>
...
</refentry>
Возможно ли...
- Не перечислять разделы между
refentry
с, а только перечислять их под заголовком главы как мини-ToC? - Перечислять значения
refentry/refentrytitle
вкаждый раздел?
Например, вывод для начала главы ЧА должен выглядеть следующим образом:
Page X
ChA
Structures
SomeStruct
Functions
SomeFunc
Page X+1
SomeStruct page
Page X+2
SomeFunc page
Page X+3
ChB
Structures
SomeStruct2
Functions
SomeFunc2
...
Далее new страница обрабатывается каждые refentry
из всех разделов главы ChA последовательно и не разбивается на разделы Структуры и Функции .
Редактировать 1
Мне удалось предотвратить печать разделов между страницами руководства.Я скопировал section.content
шаблон:
<xsl:template name="section.content">
<!-- Don't display section -->
<!-- <xsl:call-template name="section.titlepage"/> -->
...
</xsl:template>
Что касается перечисления разделов, я нашел это:
<xsl:template match="chapter">
...
<fo:page-sequence hyphenate="{$hyphenate}"
master-reference="{$master-reference}">
...
<fo:flow flow-name="xsl-region-body">
<xsl:call-template name="set.flow.properties">
<xsl:with-param name="element" select="local-name(.)"/>
<xsl:with-param name="master-reference" select="$master-reference"/>
</xsl:call-template>
<fo:block id="{$id}"
xsl:use-attribute-sets="component.titlepage.properties">
<xsl:call-template name="chapter.titlepage"/>
<!-- === HERE IS WHERE I AM INSERTING MY CUSTOM TABLE OF CONTENTS === -->
<xsl:for-each select="self::*/section">
<fo:block>
<xsl:message>DEBUG><xsl:value-of select="title"/></xsl:message>
<xsl:value-of select="title"/>
<xsl:for-each select="self::*/refentry/refmeta">
<fo:block>
<xsl:value-of select="refentrytitle"/>
</fo:block>
</xsl:for-each>
</fo:block>
</xsl:for-each>
</fo:block>
<xsl:call-template name="make.component.tocs"/>
<xsl:apply-templates/>
</fo:flow>
</fo:page-sequence>
</xsl:template>