Spécification du langage C # 5 dans LibreOffice Writer

2

J'ai rencontré un comportement très étrange de LibreOffice lors de l'ouverture de la version 5.0 du langage de langage C #. Lorsque j'ouvre cette spécification dans Microsoft Word 2013 sur la page de titre, il est écrit "Spécification du langage C # version 5.0", mais lorsque je l'ouvre dans LibreOffice Writer 4.0.3.3, je vois "Spécification du langage C # version 4.0".

J'ai enregistré mon écran et transféré une vidéo sur YouTube illustrant ceci: http://www.youtube.com/watch?v=kpWc9becFtc

Pourquoi LibreOffice Writer se comporte-t-il?

rpeshkov
la source
Convertissez le document en un fichier .doc. Je suppose que LibreOffice n'aime pas le format Word 2013 .docx.
Ramhound
Je me demandais pourquoi il disait aussi 4.0, je ne savais pas que Word l'affiche «correctement».
svick
@svick Je l'ai écrit en commentaire pour réponse acceptée. Il existe une référence sur le champ personnalisé dans le balisage du document, mais il existe également un élément de texte contenant la valeur 5.0. MS Word utilise ce texte alors que LO Writer l'ignore et affiche la valeur de la propriété du document, à savoir 4.0
rpeshkov
En outre, si vous mettez à jour le champ dans Word, il affichera "4.0", tout comme LO.
crayzeewulf

Réponses:

4

Ce n'est pas un comportement vraiment étrange.

Dans Word, ce numéro de version est stocké dans une "propriété de document personnalisée" dont la valeur est insérée à l'aide d'un champ DOCPROPERTY, comme ceci {DOCPROPERTY Version * Mergeformat}. Vous pouvez voir ces codes de champ dans Word avec Alt-F9. Le résultat est affiché comme 5.0. Mais ces champs ne se mettent pas à jour automatiquement dans Word. Pour les mettre à jour, vous pouvez sélectionner le champ et appuyer sur F9. Si vous faites cela, la valeur qui est réellement stockée dans la propriété du document est affichée. En d'autres termes, à un moment donné, quelqu'un a probablement mis à jour la valeur de la propriété en 5.0, puis le code de champ, puis (pour une raison quelconque) en arrière et modifié la valeur de la propriété du document en 4.0, puis ne pas mis à jour le champ {DOCPROPERTY}.

Dans LibreOffice, les choses fonctionnent un peu différemment - la valeur est mise à jour lorsque vous ouvrez le document et la version 4.0 s'affiche. (Vous ne pouvez pas voir le code de champ de la même manière que dans Word, mais si vous faites un clic droit, vous verrez peut-être Champs ... dans le menu déroulant. Dans ce menu, vous devriez voir un champ personnalisé appelé Version. .)


la source
C'est réponse correcte. J'ai regardé dans le fichier document.xml du fichier docx et constaté qu'il s'agissait d'un champ. Mais j'ai aussi constaté qu'il y avait un élément de texte avec 5.0. Cela signifie que LO Writer utilise la valeur du champ même si elle a été modifiée dans le texte!
rpeshkov
2
Vous avez raison: une modification manuelle est possible dans ce cas et constitue l'explication la plus simple. Il y a des chances que personne ne documente le fait que ce document utilise des champs pour les informations de version. et l'éditeur n'a probablement pas compris ce que ces champs ont fait. Dans Word, la mise à jour des champs écrase généralement les résultats typés, mais dans certains cas ({HYPERLINK}, par exemple), ce n'est pas le cas.