Jak se odkazovat na List of Figures?

Jirka Kosek jirka na kosek.cz
Pátek Prosinec 11 16:06:54 CET 2009


Tomas.Waller wrote:
> Dobrý den!
> Chci-li se odkazovat na List of Figures v pdf, jak to udělat? To není původní element docbooku, ale vytváří se až při zpracování. Chtěl bych ho dát do obsahu (do Table of Contents).

Pro obrázky třeba takhle, ale dá se to zobecnit pro všechny seznamy a
bylo by dobré kód upravit tak, aby se to do obsahu přidávalo jen pokud
je potřeba:

<xsl:template name="division.toc">
  <xsl:param name="toc-context" select="."/>
  <xsl:param name="toc.title.p" select="true()"/>

  <xsl:variable name="cid">
    <xsl:call-template name="object.id">
      <xsl:with-param name="object" select="$toc-context"/>
    </xsl:call-template>
  </xsl:variable>

  <xsl:variable name="nodes"
                select="$toc-context/part
                        |$toc-context/reference
                        |$toc-context/preface
                        |$toc-context/chapter
                        |$toc-context/appendix
                        |$toc-context/article
                        |$toc-context/bibliography
                        |$toc-context/glossary
                        |$toc-context/index"/>

  <xsl:if test="$nodes">
    <fo:block id="toc...{$cid}"
              xsl:use-attribute-sets="toc.margin.properties">
      <xsl:if test="$toc.title.p">
        <xsl:call-template name="table.of.contents.titlepage"/>
      </xsl:if>

      <!-- Přidání seznamu obrázků -->
      <xsl:call-template name="toc.line2">
	<xsl:with-param name="id" select="concat('lot...figure...', $cid)"/>
	<xsl:with-param name="label">Seznam obrázků</xsl:with-param>
      </xsl:call-template>

      <xsl:apply-templates select="$nodes" mode="toc">
        <xsl:with-param name="toc-context" select="$toc-context"/>
      </xsl:apply-templates>
    </fo:block>
  </xsl:if>
</xsl:template>

<xsl:template name="toc.line2">
  <xsl:param name="toc-context" select="NOTANODE"/>

  <xsl:param name="id">
    <xsl:call-template name="object.id"/>
  </xsl:param>

  <xsl:param name="label">
    <xsl:apply-templates select="." mode="label.markup"/>
  </xsl:param>

  <fo:block xsl:use-attribute-sets="toc.line.properties">
    <fo:inline keep-with-next.within-line="always">
      <fo:basic-link internal-destination="{$id}">
        <xsl:if test="$label != ''">
          <xsl:copy-of select="$label"/>
        </xsl:if>
      </fo:basic-link>
    </fo:inline>
    <fo:inline keep-together.within-line="always">
      <xsl:text> </xsl:text>
      <fo:leader leader-pattern="dots"
                 leader-pattern-width="3pt"
                 leader-alignment="reference-area"
                 keep-with-next.within-line="always"/>
      <xsl:text> </xsl:text>
      <fo:basic-link internal-destination="{$id}">
        <fo:page-number-citation ref-id="{$id}"/>
      </fo:basic-link>
    </fo:inline>
  </fo:block>
</xsl:template>



-- 
------------------------------------------------------------------
  Jirka Kosek     e-mail: jirka na kosek.cz     http://www.kosek.cz
------------------------------------------------------------------
  Profesionální školení a poradenství v oblasti technologií XML.
       Podrobný přehled školení http://xmlguru.cz/skoleni/
------------------------------------------------------------------
  http://docbook.cz    Stránky o dokumentačním formátu DocBook
  http://xmlguru.cz    Blog mostly about XML for English readers
------------------------------------------------------------------

------------- další část ---------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
URL: <http://www.linux.cz/pipermail/docbook/attachments/20091211/0e7fd8af/attachment.sig>


Další informace o konferenci Docbook