merci pour cette réponse,
donc le mécanisme n'est pas prévu par docbook.xsl?
je pensais que :
<para>Ceci est un texte<indexterm><primary>texte</primary></indexterm>.
</para>
suffisait a generer l'index correspondant,c.a.d a la fin sous le titre index
j'aurais le mot texte avec un lien sur le paragraphe...
En + pas beaucoup de doc ou d'exemple :-)
gilles
-----Message d'origine-----
De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
part de alexandre arcouteil
Envoyé : lundi 7 juillet 2003 18:01
À : xml-tech@xmlfr.org
Objet : [xml-tech] Re: index docBook
gilles g wrote:
> bonjour à tous,
>
> je cherche à faire un index avec docbook et je voudrais savoir si il est
> prévu qu'il le genere dynamiquement (tel mot --> tel page) ?
>
> Dans docBook ils indiquent qu'il faut utiliser <index> <indexentry>
> <indexterm> mais je n'arrive pas a les utiliser pour ce que je veux faire.
>
> qq a deja pratiqué ?
>
> merci.
>
> gilles.
> gilles.grandon@mondeca.com
Bonjour,
docbook prevoit deux cas de figures :
l'edition d'un index manuel (comme pour le glossaire) ou la génération
de cet index à partir de balises posées dans le texte. Dans ce cas vous
utiliserez des balises suivantes dans un paragraphe qui cree une ancre
pour le terme "texte" de l'index :
<para>Ceci est un texte<indexterm><primary>texte</primary></indexterm>.
</para>
Les pointeurs peuvent être traités par un XSLT pour générer l'index, par
exemple en utilisant la fameuse "methode Muench" de regroupement
(vivement XSLT2) vous pouver appliquer ce genre de traitement pour
obtenir du code xsl:fo:
<xsl:key match="indexterm" name="termeIndex" use="primary"/>
<xsl:template match="indexterm">
<fo:inline>
<xsl:attribute name="id">
<xsl:value-of select="generate-id()" />
</xsl:attribute>
</fo:inline>
</xsl:template>
<xsl:template name="listeIndex">
<xsl:for-each
select="//indexterm[generate-id(.)=generate-id(key('termeIndex',
primary)[1])]">
<xsl:sort select="primary" />
<fo:block>
<xsl:value-of select="primary" />
<xsl:text>:</xsl:text>
<xsl:for-each select="key('termeIndex', primary)">
<fo:page-number-citation ref-id="{generate-id(.)}" />
<xsl:if test="not(position()=last())">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
</fo:block>
</xsl:for-each>
</xsl:template>
Le premier template sert à creer une ancre avec un id vers lequel le
code FO pointe pour inserer le numéro de page correspondant.
J'espere que c'est assez clair :P
alex
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Mon Jul 7 18:21:51 2003