Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres Logiciels > OpenOffice

OpenOffice Forum d'entraide sur OpenOffice.org. Avant de poster : La F.A.Q OpenOffice

Réponse
 
Outils de la discussion
Vieux 04/07/2008, 15h11   #1 (permalink)
Futur Membre du Club
 
Date d'inscription: juin 2007
Localisation: Rennes
Âge: 22
Messages: 37
Par défaut [Writer] Numérotation des paragraphes dans OpenOffice.org 2.4

Bonjour,

Je m’adresse encore une fois à vous car je m’arrache les cheveux depuis ce matin pour régler un problème de numérotation de chapitres. Je vais essayer d'être aussi clair que possible. Voici mon problème.

J’utilise les filtres XML d’OpenOffice.org 2.4 pour interpréter du DocBook (langage XML) et le présenter avec OpenOffice writer. Pour cela, j’ai donc un modèle .ott qui définit les styles à appliquer, styles qui sont appelés dans la feuille de style à l’import du fichier DocBook. Dans ce modèle, les styles de titres n’ont pas de numérotation associée, mais la numérotation des chapitres est configurée. Voici ce que j’obtiens lorsque j’applique à la main des titres dans un document basé sur le modèle :
(cf "Presentation modele.pdf")

Le fichier docbook que je rentre est le suivant :
Code :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" >

<section>
	<title></title>
	<section>
		<title></title>
		<section>
			<title></title>
			<section>
				<title></title>
				<section>
					<title></title>
					<section>
						<title></title>
					</section>
				</section>
			</section>
		</section>
	</section>
	<section>
		<title></title>
	</section>
</section>
Le motif traitant les titres de sections est le suivant (level est un paramètre indiquant le niveau d’imbrication de la section dans laquelle est situé le titre) :
Code :
	<xsl:template match="title">
		<xsl:param name="level" select="1" />
		<!-- La profondeur maximale autorisée est 5 (titre 5) -->
		<xsl:choose>
			<xsl:when test="$level &lt; 5"><!-- Si la profondeur est inférieure à 5 -->
				<!-- Sert à former la chaine style 'Titre 1' -->
				<xsl:variable name="style_liste"
					select="concat('Titre ', $level)" />

				<text:h text:is-list-header="false"
					text:style-name="{$style_liste}">
					<!--			<xsl:value-of select="text()" />
					-->
					<xsl:value-of select="$style_liste" />
					,
					<xsl:value-of select="$level" />
				</text:h>
			</xsl:when>

			<xsl:otherwise><!-- Sinon, on applique le style 'Titre 5' -->
				<text:h text:is-list-header="false"
					text:style-name="Titre 5">
					<!--			<xsl:value-of select="text()" />
					-->
					Titre 5,
					<xsl:value-of select="$level" />
				</text:h>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>
Le problème est que, dans l’éditeur de texte, la numérotation des titres n’apparaît pas lorsque j’importe le fichier DocBook. Quand on compare le content.xml de ce fichier avec celui du fichier que je souhaite obtenir, seuls les attributs de la balise <text :h > diffèrent (exemple pour le titre 2) :

mauvaise numérotation:
Code :
<text:h text:is-list-header="true" text:outline-level="2"
				text:style-name="Heading_20_2">
bonne numérotation:
Code :
	<text:h text:outline-level="2"
				text:style-name="Heading_20_2">
C’est pourquoi j’ai spécifié clairement dans ma feuille de style
Code :
<text:h text:is-list-header="false"
Mais apparemment, lors de l’import, l'attribut
Code :
text:is-list-header="true"
apparaît toujours dans la balise <text :h>.


Je compte donc sur vos talents pour me dire d’où vient le problème car j’avoue que je perds espoir… Peut-être savez-vous à quelle option est lié le code
Code :
text:is-list-header="true"
dans l'interface d'OpenOffice.org writer?
Fichiers attachés
Type de fichier : pdf Presentation modele.pdf (13,5 Ko, 1 affichages)

Dernière modification par samalairbien ; 08/07/2008 à 13h54
samalairbien est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/07/2008, 23h14   #2 (permalink)
Rédacteur/Modérateur
 
Avatar de GrandFather
 
Date d'inscription: mai 2004
Localisation: Townsville
Âge: 38
Messages: 3 907
Par défaut

Bonjour,

Voici ce que dit la spécification OpenDocument concernant text:is-list-header :
Citation:
It is sometimes desired to have a specific heading which should not be numbered. This corresponds to unnumbered list headers in lists (see sections 4.3). To facilitate this, an optional attribute text:is-list-header can be used. If true, the given header will not be numbered, even if an explicit list-style is given.
As-tu essayé d'ajouter une numérotation à tes styles de titre dans le modèle ?
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/07/2008, 08h59   #3 (permalink)
Futur Membre du Club
 
Date d'inscription: juin 2007
Localisation: Rennes
Âge: 22
Messages: 37
Par défaut

Citation:
Envoyé par GrandFather Voir le message
As-tu essayé d'ajouter une numérotation à tes styles de titre dans le modèle ?
Oui. Ca marchait bien pour la conversion DocBook->OpenDocument. Mais le problème c'est que les titres issus de mon fichier DocBook n'avaient pas le même style que mes titres directement écrits dans mon modèle alors que je ne redéfinissais pas ces styles dans ma feuille de styles... C'est pourquoi je suis passé au menu Numérotation des chapitres. De plus, j'ai lu que les titres de paragraphes devaient être numérotés de cette manière et non à l'aide de puces.

Et le problème avec le is-list-header, c'est que même quand je le mets à false dans ma feuille de style, il apparaît à vrai dans le format OpenDocument. Je ne comprends pas pourquoi...
samalairbien est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/07/2008, 12h15   #4 (permalink)
Rédacteur/Modérateur
 
Avatar de GrandFather
 
Date d'inscription: mai 2004
Localisation: Townsville
Âge: 38
Messages: 3 907
Par défaut

Citation:
Envoyé par samalairbien Voir le message
Et le problème avec le is-list-header, c'est que même quand je le mets à false dans ma feuille de style, il apparaît à vrai dans le format OpenDocument. Je ne comprends pas pourquoi...
C'est vraisemblablement un post-traitement effectué après l'importation par OOo, la modification du code XSLT n'aura donc aucun effet. Je n'en suis pas absolument certain, mais je pense que OOo impose cet attribut parce que la numérotation n'est pas activé dans ton filtre d'importation, et que pour lui les styles figurant dans le filtre d'importation sont prioritaires sur les styles définis dans le modèle : mets-les en conformité, et cela devrait mieux marcher.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/07/2008, 13h52   #5 (permalink)
Futur Membre du Club
 
Date d'inscription: juin 2007
Localisation: Rennes
Âge: 22
Messages: 37
Par défaut

Citation:
Envoyé par GrandFather Voir le message
mets-les en conformité, et cela devrait mieux marcher.
Qu'est-ce que tu appelles mettre en conformité? Associer une numérotation à chaque style Titre?

Car le problème, c'est que maintenant quand j'associe une numérotation à un style, la numérotation est continue tout au long du document, alors que les options "Numérotation continue" ne sont pas cochées. Pour chaque style, j'associe la numérotation 1 puis je configure chacun des niveaux pour avoir le rendu attendu. Malgré ça, comme je le disais, les paragraphes sont numérotés de 1 à N indépendamment du style de titre appliqué (ces styles étant par contre attribués correctement).

Citation:
Envoyé par GrandFather Voir le message
la numérotation n'est pas activé dans ton filtre d'importation
Pour les activer il faut que j'applique des text:list alors avec un style de numérotation associée? Mais le problème en déclarant la numérotation de cette mannière dans ma feuille XSLT, c'est que les styles de titres de mon modèle seront différents de ceux appliqués par ma feuille. Or, le document odt produit à partir du docbook est ensuite intégré dans un document maître qui a des titres dont les styles appartiennent à mon modèle. Et le but est que tous les styles soient homogènes...
samalairbien est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/07/2008, 09h03   #6 (permalink)
Futur Membre du Club
 
Date d'inscription: juin 2007
Localisation: Rennes
Âge: 22
Messages: 37
Par défaut

Solution trouvée:

En fait, au lieu de faire apparaître mes titres comme des
Code :
text:h
, je les déclare maintenant en tant que
Code :
text:p
. Car le premier se retrouve systématiquement avec un
Code :
text:is-list-header='true'
dans opendocument.

Certes, dans le document qui résulte de la transformation de mon docbook en opendocument, les titres ne sont pas numérotés (malgré la bonne configuration des Numérotations de chapitres) mais dès lors que je passe dans le document maître, la numérotation est correcte. Bon, ça ne m'a pas l'air très stable car il arrive que ça ne s'affiche pas correctement, mais c'est pour le moment la meilleure solution que j'ai trouvée.
samalairbien est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres Logiciels > OpenOffice



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide