[Résolu] Versions

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Versions

Messagepar cerise » Vendredi 16 Novembre 2012, 13:08

Bonjour,

je suis en train de travailler sur un texte dont je veux faire deux versions légèrement différentes. Une destinée à produire un article, l'autre à insérer dans ma thèse. J'ai découvert le package versions qui fait exactement ce que je veux. Avec \excludeversion{nom_version}, je peux exclure une version, avec \includeversion{nom_version}, je peux l'inclure, et enfin avec \markversion{nom_version}, je peux la mettre en valeur : par défaut, cela rajoute un [nom_version>] au début et un [<nom_version] à la fin (avec des cadres au lieu des []). Cela permet donc de visualiser plusieurs versions à la fois.

Tout cela est très bien, mais j'aimerais changer le comportement de \markversion, de sorte que le texte de chaque version soit écrit dans des couleurs différentes, plutôt qu'encadré par les [nom_version>]/[<nom_version].

En m'inspirant de ce qui est proposé dans la documentation, j'ai essayé cela :
Code: Tout sélectionner
\usepackage{xcolor}
\usepackage{versions}
\markversion{these}
\markversion{article}

\colorlet{these}{red}
\colorlet{article}{blue}

\renewcommand\beginmarkversion{\textcolor{\@currenvir}{}
\renewcommand\endmarkversion{}}


J'obtiens l'erreur suivante :
Code: Tout sélectionner
! Package xcolor Error: Undefined color `\spacefactor \@m currenvir'.


Je précise que, d'après la doc, par défaut, le comportement de markversion est défini comme ça :
Code: Tout sélectionner
\renewcommand\beginmarkversion{\@Vs@sffbox{\@currenvir$>$}}
\renewcommand\endmarkversion{\@Vs@sffbox{$<$\@currenvir}}

et il est précisé que \@currenvir est censé être le nom de la version.

De manière générale, l'utilisation de ce genre de syntaxe avec des @ reste assez mystérieuse pour moi, mes connaissances en LaTeX sont insuffisantes (d'ailleurs, si quelqu'un connait un bon tutoriel pour faire des choses avancées en LaTeX, je suis preneuse ;)). Si quelqu'un peut éclairer ma lanterne sur ce que fait exactement \@currenvir, et comment récupérer réellement le nom de la version, je lui en serais reconnaissante :)
Dernière édition par cerise le Vendredi 16 Novembre 2012, 14:10, édité 1 fois.
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
cerise
Méga-utilisateur
 
Messages: 448
Inscription: Mercredi 08 Juin 2005, 17:03
Statut actuel: Actif et salarié

Publicité

Re: Versions

Messagepar pg » Vendredi 16 Novembre 2012, 14:08

Il faut encadrer tout code qui contient @ entre \makeatletter et \makeatother. Il n'est pas non plus possible de commencer une accolade dans une commande et la fermer dans une autre. Il faut donc utiliser \color au lieu de \textcolor :

Code: Tout sélectionner
\makeatletter
\renewcommand\beginmarkversion{\color{\@currenvir}}
\renewcommand\endmarkversion{}
\makeatother
pg
Modérateur
 
Messages: 2592
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Versions

Messagepar cerise » Vendredi 16 Novembre 2012, 14:10

Merci beaucoup pour ta réponse, qui est, comme d'habitude, rapide et efficace :)
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
cerise
Méga-utilisateur
 
Messages: 448
Inscription: Mercredi 08 Juin 2005, 17:03
Statut actuel: Actif et salarié


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Grapeshot [Crawler], Yandex [Bot] et 13 invités

cron