IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Comprendre un bout de code

  1. #1
    Membre confirmé
    Avatar de lejimi
    Homme Profil pro
    Écrivain public
    Inscrit en
    Mai 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Écrivain public
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2004
    Messages : 182
    Points : 483
    Points
    483
    Billets dans le blog
    2
    Par défaut Comprendre un bout de code
    Bonjour,

    je travaille toujours sur ma traduction de la documentation du package titlesec. L'une de choses qui me posent souci est la présentation utilisée pour signaler les paramètres : http://www.developpez.net/forums/d15...tres-speciaux/

    Javier a eu la gentillesse de m'envoyer les sources de cette documentation et voici le bout de code qui semble correspondre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    \newenvironment{desc}
      {\if@nobreak
         \vskip-\lastskip
         \vspace*{-2.5ex}%
       \fi
       \decl}
      {\enddecl}
    \makeatother
     
    \usepackage{textcomp,pslatex}
    Ensuite c'est utilisé comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    \begin{desc}
    |\assignpagestyle{<command>}{<pagestyle>}|
    \end{desc}
    Il y a là-dedans pas mal de chose que je ne comprends pas (si ce n'est qu'on s'aventure déjà dans TeX non ?) :
    • ce que teste exactement if@nobreak ;
    • la signification des commandes \decl et \enddecl (en rapport avec l'environnement ?) ;
    • le rôle de | … | qui encadrent bout de code (transformer > et < ?).


    Je pourrais bien sûr tout copier-coller tel-quel, mais je préfère comprendre (de mon côté, avant d'avoir le code de Javier, j'avais bricolé une commande \param{}).

    Je voudrais aussi que certains de ces bouts de code apparaissent dans ma table des matières comme \subsection. Est-ce que je peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    \subsection[assignpagestyle]{
      \begin{desc}
        |\assignpagestyle{<command>}{<pagestyle>}|
      \end{desc}
    }
    Gloire à qui n'ayant pas d'idéal sacro-saint
    Se borne à ne pas trop emmerder ses voisins.


    Mon tutoriel pour débuter avec Inkscape
    D'autres tutoriels intéressants dans la rubrique Open Source
    Et n'oubliez pas la FAQ Open Source !

  2. #2
    Membre confirmé
    Avatar de lejimi
    Homme Profil pro
    Écrivain public
    Inscrit en
    Mai 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Écrivain public
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2004
    Messages : 182
    Points : 483
    Points
    483
    Billets dans le blog
    2
    Par défaut
    Après quelques recherches : toujours rien sur \decl et \enddecl, en revanche le passages entre |…| font un peut penser à la syntaxe de la commande \verb|…| mais sans la commande \verb ! Est-ce que ces bizarreries ne proviendraient pas de la classe du document : ltxguide ?

    Encore une truc qui me laisse perplexe : les fameux <paramètres> sont composés en italique, or je ne vois rien de le code qui indique l'italique. ltxguide, là encore ?
    Gloire à qui n'ayant pas d'idéal sacro-saint
    Se borne à ne pas trop emmerder ses voisins.


    Mon tutoriel pour débuter avec Inkscape
    D'autres tutoriels intéressants dans la rubrique Open Source
    Et n'oubliez pas la FAQ Open Source !

  3. #3
    Membre confirmé
    Avatar de lejimi
    Homme Profil pro
    Écrivain public
    Inscrit en
    Mai 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Écrivain public
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2004
    Messages : 182
    Points : 483
    Points
    483
    Billets dans le blog
    2
    Par défaut
    Ah y est ! J'ai tout compris ! Tout est dans la classe de document ltxguide.cls !

    Elle définit un environnement decl qui permet d'afficher un bout de code encadré décalé dans la marge gauche. Fondamentalement, c'est un tableau à une. titlesec.tex définit à son tour un environnement desc. Dans sa déclaration \decl et \enddecl sont simplement des remplacements pour \begin{decl} et \end{decl} (apparemment \mon_environnement et \endmon_environnement peuvent toujours remplacer \begin{mon_environnement} et \end{mon_environnement}, ça je savais pas, avec juste une différence sur la portée des déclarations : http://tex.stackexchange.com/questio...ther-than-envi).

    La manière la plus simple de faire apparaître ces commandes encadrées dans ma table des matières ? L’œuf de Colomb, c'est à dire \addcontents !

    Les paramètres qui passent et les <> qui s'allongent çase passer ici dans ltxguide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    \newcommand{\m}[1]{\mbox{$\langle$\it #1\/$\rangle$}}
    \renewcommand{\arg}[1]{{\tt\string{}\m{#1}{\tt\string}}}
    \newcommand{\oarg}[1]{{\tt[}\m{#1}{\tt]}}
    < et > sont ensuite rendus actifs pour déclencher la commande \m. Et voilà !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    % Make active <...> produce italics surrounded by angle brackets
    % (used in verbatim and \verb).
    % << produces a less-than, and >> produces a greater-than.
     
    \begingroup
      \catcode`\<=\active
      \catcode`\>=\active
      \gdef<{\@ifnextchar<\@lt\@meta}
      \gdef>{\@ifnextchar>\@gt\@gtr@err}
      \gdef\@meta#1>{\m{#1}}
      \gdef\@lt<{\char`\<}
      \gdef\@gt>{\char`\>}
    \endgroup
    \def\@gtr@err{%
       \ClassError{ltxguide}{%
          Isolated \protect>%
       }{%
          In this document class, \protect<...\protect>
          is used to indicate a parameter.\MessageBreak
          I've just found a \protect> on its own.
          Perhaps you meant to type \protect>\protect>?
       }%
    }
    Quant à la commande \verb|…| sans commande \verb (juste avec les délimiteurs |…|) c'est effectivement un raccourci utilisable avec les document de la classe ltxguide. Ceci dit ça ne doit pas marcher tout le temps car il reste des \verb qui traînent dans le code de Javier.
    Gloire à qui n'ayant pas d'idéal sacro-saint
    Se borne à ne pas trop emmerder ses voisins.


    Mon tutoriel pour débuter avec Inkscape
    D'autres tutoriels intéressants dans la rubrique Open Source
    Et n'oubliez pas la FAQ Open Source !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comprendre un bout de code
    Par Juliendu92 dans le forum MATLAB
    Réponses: 2
    Dernier message: 08/02/2015, 09h03
  2. Besoin d'aide pour comprendre ce bout de code
    Par sorry60 dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 21/03/2009, 16h44
  3. Comprendre un bout de code
    Par MohEllayali dans le forum OpenCV
    Réponses: 1
    Dernier message: 27/06/2008, 13h48
  4. bout de code à dechifrer svp
    Par bball dans le forum C
    Réponses: 32
    Dernier message: 20/01/2005, 23h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo