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

Distributions Discussion :

Décalage en fonction de la ligne pénultième


Sujet :

Distributions

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut Décalage en fonction de la ligne pénultième
    Bonjour à tous !
    Voilà un titre qui ne parlera sans doute pas à grand monde...
    En littérature, quand on a un texte de théâtre en vers, si le vers est coupé entre deux personnages, il est d'usage que la deuxième partie du vers reprenne là où la première c'était arrêtée, visuellement parlant. Je mets un exemple en pièce jointe (pourvu que ça marche Nom : exVers.JPG
Affichages : 118
Taille : 36,7 Ko)
    Voici comment j'ai codé ça pour l'instant :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    \documentclass[a4paper, 12pt]{book}
    \usepackage[top=2cm, bottom=2cm, left=3cm, right=3cm]{geometry}
    \usepackage[francais]{babel}	
    \usepackage[T1]{fontenc}	
    \usepackage[latin9]{inputenc}
    \usepackage{calc}
    \usepackage{ifthen}
     
    \newcommand\pers[2][]{%
        \vspace{2ex}%
        \begingroup
            \centering
            \textsc{#2}%
            \ifx\empty#1\empty\else, \emph{#1}\fi
    	\par\nobreak
    	\endgroup
    }
    \newcommand{\alex}[1]{ \hspace{1cm} #1 \par }
    \newcommand{\dariolette}[1][]{\pers[#1]{dariolette}}
    \newcommand{\trivelin}[1][]{\pers[#1]{trivelin}}
     
    \begin{document}
    \dariolette
    \alex{Hélas! pour moi le temps coule trop lentement;}
    \alex{La fête d'aujourd'hui me paraît fort jolie,}
    \alex{Je voudrais contenter aussi ma fantaisie,}
    \alex{Mais mon âge s'oppose à cette volonté:}
    \alex{Je suis trop jeune. Hélas! Dure nécessité}
    \alex{Qui m'oblige à rester encore quelques temps fille!}
    \alex{Ah! c'est un grand malheur.}
     
    \trivelin
    \alex{\hspace{28ex}Elle est toute gentille.}
    \alex{De son raisonnement je ne suis point surpris.}
    \alex{Par ma foi, la nature est de tous les pays.}
    \alex{Mignonne, dites-moi: quand vous serez dans l'âge}
    \alex{Qui sous le joug d'hymen permet que l'on s'engage,}
    \alex{Vous arrêterez-vous toujours au même choix?}
    \end{document}
    (Désolé, il y a plein de baragouin dans le préambule, mais c'est pour que vous puissiez voir comment ça s'organise dans mon fichier. \alex est pour alexandrin.)
    Comme vous voyez, j'ai bidouillé avec \hspace en comptant à peu près le nombre de caractères et en ajustant ensuite selon le résultat visuel de la compilation. C'est mal ! J'aimerais savoir s'il est possible d'obtenir quelque chose de propre qui fasse tout ça automatiquement.

    Moi j'vous l'dit que j'vais faire du prosélytisme LaTeX chez les littéraires !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tiens, je reconnais une macro que j'ai écrite ici il y a quelques mois

    Pour ce que tu demandes, c'est possible, évidemment puisque tout est possible en TeX. Par contre, il va falloir modifier la macro \pers et \alex pour que \alex teste si \alex teste si la dernière macro est \pers, auquel cas, il faudra indenter de la même quantité que le fait \pers.

    C'est assez facile à faire, mais pour l'instant, c'est correction des copies et ensuite miam-miam. Je te filerai la solution dans l'après midi...

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par unbonpetit Voir le message
    Il va falloir modifier la macro \pers et \alex pour que \alex teste si \alex teste si la dernière macro est \pers, auquel cas, il faudra indenter de la même quantité que le fait \pers
    Euh... je comprends peut-être de travers, mais en fait \pers est juste centré, ce qui est normal. Il faut indenter autant que l'exige l'\alex précédent s'il y a eu un \pers entre les deux. En fait, pour tout dire, je pense qu'on peut créer une commande \alex pour l'alexandrin normal, sans indentation supplémentaire, et une autre commande qui, elle, teste la quantité, ou quelque chose comme ça. C'est assez difficile à expliquer.
    Mais bon courage, pour les copies en particulier, et bon appétit ! Ce n'est pas ultra pressé.

    Quant à la commande \pers, merci encore ! Celle-là, j'avais compris comment elle était faite et du coup j'ai pu la modifier un peu... (Dans mon préambule, j'aurais fait que les commandes débiles en fait...)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je propose ce code :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    \documentclass[a4paper,12pt]{book}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[top=2cm,bottom=2cm,left=3cm,right=3cm]{geometry}
    \usepackage[frenchb]{babel}
    \makeatletter
    \newdimen\dim@a\newdimen\defaut@indent
    \newbox\boite@a
    \newcommand\setindentalex[1]{\defaut@indent#1\relax\dim@a#1\relax}
    \newcommand\pers[2][]{%
    	\vspace{2ex}\noindent
    	\setbox\boite@a\hbox{%
    		\textsc{\uppercase{\@car#2\@nil}\@cdr#2\@nil}%
    		\ifx\empty#1\empty\else, \emph{#1}\fi}%
    	\dim@a\dimexpr(\linewidth-\wd\boite@a)/2\relax
    	\noindent\hspace\dim@a\box\boite@a
    	\par\nobreak}
     
    \newcommand\alex[1]{\noindent\hspace\dim@a#1\dim@a\defaut@indent\relax\par}
    \newcommand\nouvelacteur[1]{%
    	\expandafter\newcommand\csname#1\endcsname[1][]{\pers[##1]{#1}}}
    \makeatother
     
    \begin{document}
    Du texte avant les vers pour comparer. Du texte avant les vers pour comparer. Du texte avant les vers pour comparer. Du texte avant les vers pour comparer. Du texte avant les vers pour comparer. Du texte avant les vers pour comparer. Du texte avant les vers pour comparer. Du texte avant les vers pour comparer. Du texte avant les vers pour comparer. Du texte avant les vers pour comparer. Du texte avant les vers pour comparer. Du texte avant les vers pour comparer.
    \setindentalex{1cm}
    \nouvelacteur{trivelin}
    \nouvelacteur{dariolette}
     
    \dariolette[impatiente]
    \alex{Hélas! pour moi le temps coule trop lentement;}
    \alex{La fête d'aujourd'hui me paraît fort jolie,}
    \alex{Je voudrais contenter aussi ma fantaisie,}
    \alex{Mais mon âge s'oppose à cette volonté:}
    \alex{Je suis trop jeune. Hélas! Dure nécessité}
    \alex{Qui m'oblige à rester encore quelques temps fille!}
    \alex{Ah! c'est un grand malheur.}
     
    \trivelin
    \alex{Elle est toute gentille.}
    \alex{De son raisonnement je ne suis point surpris.}
    \alex{Par ma foi, la nature est de tous les pays.}
    \alex{Mignonne, dites-moi: quand vous serez dans l'âge}
    \alex{Qui sous le joug d'hymen permet que l'on s'engage,}
    \alex{Vous arrêterez-vous toujours au même choix?}
     
    Du texte après les vers pour comparer. Du texte après les vers pour comparer. Du texte après les vers pour comparer. Du texte après les vers pour comparer. Du texte après les vers pour comparer. Du texte après les vers pour comparer. Du texte après les vers pour comparer. Du texte après les vers pour comparer. Du texte après les vers pour comparer. Du texte après les vers pour comparer. Du texte après les vers pour comparer. Du texte après les vers pour comparer.
    \end{document}

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut
    Effectivement, nous nous sommes mal compris... Voici en PDF et en .tex toute la scène, où l'on comprend mieux.
    La deuxième partie de l'alexandrin partiel doit être aligné en fonction de la fin de sa première partie, et non du nom de personnage (qui s'appelle une rubrique), qui lui est toujours centre quoi qu'il arrive. En fait, on doit voir que "Ah c'est un grand malheur — Elle est toute gentille" ne constitue qu'un seul alexandrin (12 syllabes anatoniques). On voit peut-être mieux ce que je veux dire plus loin dans la scène, avec "N'est-ce pas — J'en prendrai d'une aimable figure", "On m'a fait ma leçon — Parbleu vous m'étonnez", "Qu'ai-je donc de si laid — Bon, vous êtes camard", "Vous m'ennuyez déjà — La petite coquette". Toutes ces entités, bien que réparties entre deux personnages, ne font qu'un seul vers.
    Et on voit aussi un vers où j'ai mal fait : "Comment vous nomme-t-on ? Parlez. — Dariolette." Le mot "Dariolette" devrait se situer, verticalement, après "parlez" qui est deux lignes plus haut, alors que là il commence sous le r. En fait, s'il n'y avait pas de changement de personnage, à chaque fois le vers serait sur une seule ligne. Il s'agit de créer un peu l'illusion que le personnage qui dit la fin du vers attrape la fin de la ligne.
    À l'opposé, quand le vers est entier, il doit commencer au début de la ligne (enfin, avec le décalage correspondant, mais ça c'est par rapport à la prose, c'est aussi toute une histoire), alors que dans ton exemple, le premier vers "Hélas ! pour moi le temps coule trop lentement" commence au même niveau que la rubrique "DARIOLETTE, impatiente". Je suis désolé de m'être peut-être mal exprimé auparavant et d'avoir pris un exemple qui n'était pas assez parlant.
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'ai pigé.


    Bon, j'ai revu le code entièrement ! J'ai créé des environnements dans lesquels on tape les vers "naturellement". Cela me semble bien plus simple et lisible. Exit donc la macro \alex.

    Voici le code, j'espère que ça te convient...
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
     
    \documentclass[a4paper,12pt]{book}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[top=2cm,bottom=2cm,left=3cm,right=3cm]{geometry}
    \usepackage[frenchb]{babel}
    \makeatletter
    \newdimen\defaut@indent
    \newcommand\setindentalex[1]{\defaut@indent#1\relax}
     
    \newcommand\nouvelacteur[1]{%
    	\newenvironment{#1}[1][]{%
    		\medbreak
    		\hfill\textsc{#1}\ifx&y##1&\else, \emph{##1}\fi\hfill\null
    		\par\nobreak
    		\parindent\defaut@indent
    		\leavevmode
    		\unless\ifx\vers@incomplet\@empty\hphantom{\vers@incomplet\ }\fi
    		\global\let\vers@incomplet\@empty
    		\obeylines\futurelet\thenext@car\test@next@car}\relax}
     
    \newcommand\versincomplet[1]{#1\gdef\vers@incomplet{#1}}
    \versincomplet{}
    \newcommand\test@next@car{\ifx\thenext@car\par\expandafter\@gobble\fi}
    \makeatother
     
    \begin{document}
    \setindentalex{1cm}
    \nouvelacteur{trivelin}
    \nouvelacteur{dariolette}
     
    \begin{dariolette}[désespérée]
    Enfin, voici le jour si charmant et si doux
    Où l'on peut librement se choisir un époux.
    Pourquoi, destin cruel, ne suis-je pas dans l'âge
    Qui permet à mon sexe un si grand avantage?
    \end{dariolette}
     
    \begin{trivelin}[étonné]
    De quoi vous plaignez-vous? Parlez sincèrement.
    \end{trivelin}
     
    \begin{dariolette}
    Hélas! pour moi le temps coule trop lentement;
    La fête d'aujourd'hui me paraît fort jolie,
    Je voudrais contenter aussi ma fantaisie,
    Mais mon âge s'oppose à cette volonté:
    Je suis trop jeune. Hélas! Dure nécessité
    Qui m'oblige à rester encore quelques temps fille!
    \versincomplet{Ah! c'est un grand malheur.}
    \end{dariolette}
     
    \begin{trivelin}
    Elle est toute gentille.
    De son raisonnement je ne suis point surpris.
    Par ma foi, la nature est de tous les pays.
    Mignonne, dites-moi: quand vous serez dans l'âge
    Qui sous le joug d'hymen permet que l'on s'engage,
    Vous arrêterez-vous toujours au même choix?
    \end{trivelin}
     
    \begin{dariolette}[résignée]
    Je changerai d'époux, je veux suivre nos lois.
    \end{dariolette}
     
    \begin{trivelin}
    Mais avec un mari, si vous vivez heureuse\ldots
    \end{trivelin}
     
    \begin{dariolette}
    Oh! Démon naturel, je suis fort curieuse,
    Et par le changement je m'en trouverai mieux.
    Toujours le même époux, rien n'est plus ennuyeux.
    Les ardeurs quand on change en deviennent plus belles.
    Ce sont transports nouveaux et caresses nouvelles.
    Je me figure bien du plaisir à cela.
    \end{dariolette}
     
    \begin{trivelin}
    Je suis tout stupéfait. Qu'est-ce que j'entends là?
    Non, cette fille-là n'est point australienne,
    Et pour moi je la crois plutôt parisienne
    Ou fille de Française. Et quand vous choisirez
    Un époux, avec soin vous l'examinerez,
    \versincomplet{N'est-ce pas?}
    \end{trivelin}
     
    \begin{dariolette}
    J'en prendrai d'une aimable figure
    Et n'en choisirai point de petits, je vous jure.
    Oh, je sais bien comment il faut qu'ils soient tournés:
    \versincomplet{On m'a fait ma leçon.}
    \end{dariolette}
     
    \begin{trivelin}
    Parbleu, vous m'étonnez.
    Et par exemple moi, serais-je votre affaire?
    \end{trivelin}
     
    \begin{dariolette}
    Fi donc! Je ne vois rien en vous qui puisse plaire.
    J'irai, n'en doutez pas, me pourvoir autre part.
    \end{dariolette}
     
    \begin{trivelin}
    \versincomplet{Qu'ai-je donc de si laid?}
    \end{trivelin}
     
    \begin{dariolette}
    Bon, vous êtes camard.
    Vous ne convenez point à fille connaisseuse.
    Je veux une figure un peu plus gracieuse,
    Et si, pour mon malheur, vous étiez mon mari,
    Oh, je n'attendrai pas que le temps fût fini,
    Et je vous troquerais tout d'abord contre un autre.
    Voilà mon sentiment, je ne sais pas le vôtre.
    \end{dariolette}
     
    \begin{trivelin}
    Je serais plus constant si j'étais votre époux.
    \end{trivelin}
     
    \begin{dariolette}
    Adieu, c'est trop longtemps m'arrêter avec vous:
    \versincomplet{Vous m'ennuyez déjà.}
    \end{dariolette}
     
    \begin{trivelin}
    La petite coquette!
    \versincomplet{Comment vous nomme-t-on? Parlez.}
    \end{trivelin}
     
    \begin{dariolette}
    Dariolette.
    \end{dariolette}
     
    \begin{trivelin}
    Pourquoi me quittez-vous? Où portez-vous vos pas?
    \end{trivelin}
     
    \begin{dariolette}
    Si vous étiez plus beau, je ne m'en irais pas.
    \end{dariolette}
     
    \begin{trivelin}
    Ma foi, dans ce pays, l'esprit vient avant l'âge.
    Pourrait-on, à trente ans, en savoir davantage?
    \end{trivelin}
    \end{document}

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut
    Un immense merci pour ce code.
    En fait, j'aurais dû préciser d'emblée qu'il y a pas mal de choses qui sont devenues difficilement modifiables, parce que derrière j'ai déjà une trentaines d'ancien préambules, qu'on est plusieurs à travailler et qu'il y a environ 200 fichiers (pièces de théâtre) qui sont construits avec d'anciens préambules et le réseau de commandes qui s'y rapportent. Imagine le nombre de noms de personnages que ça représente. On les remet à jour, mais on ne peut pas modifier tout.
    Ce que je vais faire, c'est étudier à fond la façon dont tu as construit ce code pour l'adapter à notre façon de coder les pièces.
    Je dois vraiment travailler dessus, mais avec ce que tu me fournis, je pense que je saurais y voir plus clair et même que ce sera très enrichissant pour moi.
    Faut que je trouve un bon bouquin aussi pour m'aider. Et dès que je parviens à pondre quelque chose de convenable, je le poste ici.
    Je suis vraiment confus...
    Ah oui, j'ai aussi oublié de dire qu'en fait ce que j'ai dit là pour \alex existe avec toutes les longueurs de vers, c'est à dire de deux à douze syllabes (douze c'est \alex, par convention, les autres s'appellent \un, \deux, etc.). Mais c'est aussi mon boulot ! Tu m'as déjà beaucoup aidé, alors : merci ! vraiment merci !

  8. #8
    Invité
    Invité(e)
    Par défaut
    Je n'avais pas compris qu'il ne s'agissait que d'un petit morceau d'un projet aussi vaste. Cependant, une question me turlupine, quelle est la différence entre tes macros \alex, \un, \deux, etc ? Si je comprends bien, elle ne font qu'afficher du texte, je me demande pourquoi en définir autant.

    Pour le code si tu veux l'adapter, il va falloir comprendre quelques subtilités TeXiennes (\futurelet par exemple) pas évidentes. Mais bon, si tu veux que chaque vers soit sous cette forme :
    il va falloir presque tout virer.

    Si tu as des problèmes, tu viens demander ici, évidemment.
    A+ (sûrement )

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut
    Cependant, une question me turlupine, quelle est la différence entre tes macros \alex, \un, \deux, etc ? Si je comprends bien, elle ne font qu'afficher du texte, je me demande pourquoi en définir autant.
    En fait, la tradition littéraire, qui est bien commode, veut qu'on décale différemment les vers selon leur longueur, avec de faire apparaître clairement la structure métrique des couplets.
    Dans mon préambule, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    \newcommand{\un}[1]{\hspace{6.5cm}#1\par}
    \newcommand{\deux}[1]{\hspace{6cm}#1\par}
    \newcommand{\trois}[1]{\hspace{5.5cm}#1\par}
    \newcommand{\quatre}[1]{\hspace{5cm}#1\par}
    \newcommand{\cinq}[1]{\hspace{4.5cm}#1\par}
    \newcommand{\six}[1]{\hspace{4cm}#1\par}
    \newcommand{\sept}[1]{\hspace{3.5cm}#1\par}
    \newcommand{\huit}[1]{\hspace{3cm}#1\par}
    \newcommand{\neuf}[1]{\hspace{2.5cm}#1\par}
    \newcommand{\dix}[1]{\hspace{2cm}#1\par}
    \newcommand{\onze}[1]{\hspace{1.5cm}#1\par}
    \newcommand{\alex}[1]{\hspace{1cm}#1\par}
    \newcommand{\treize}[1]{\hspace{1cm}#1\par}
    On aurait pu faire autrement, mais en fait, quand on lit le fichier .tex, du coup on a aussi un relevé des longueurs.
    Je mets en pièce jointe un assez bon exemple (ne regardez pas les détails du code : compilez et voyez) qui, compilé, montre ce que ça donne. C'est un exemple extrême, mais on voit dans le deuxième air (la réplique d'Églé) ce que ça donne les trois quarts du temps : tous les vers qui ont le même retrait font la même longueur, donc il suffit d'en compter un et on sait d'avance pour les autres.

    Pour le code si tu veux l'adapter, il va falloir comprendre quelques subtilités TeXiennes (\futurelet par exemple) pas évidentes.
    Tu as quelque site ou livre à me conseiller pour m'aider dans cette tache ardue ? (Je vais chercher pendant ce temps, mais on ne sait jamais.)
    Fichiers attachés Fichiers attachés

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Celadon Voir le message
    C'est un exemple extrême, mais on voit dans le deuxième air (la réplique d'Églé) ce que ça donne les trois quarts du temps : tous les vers qui ont le même retrait font la même longueur, donc il suffit d'en compter un et on sait d'avance pour les autres.
    Ah oui, je comprends mieux.
    Bon, voici un code qui respecte (j'espère) tes conditions. Pour indiquer qu'un vers est incomplet, il suffit d'employer la version étoilée de \un, \deux, etc...

    Notez les deux nouveaux personnages de cette pièce ainsi que leur répliques
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    \documentclass[a4paper,12pt]{book}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[top=2cm,bottom=2cm,left=3cm,right=3cm]{geometry}
    \usepackage[frenchb]{babel}
    \makeatletter
    \newif\ifvers@incomplet
    \vers@incompletfalse
     
    \newcommand\affiche@personnage[2][]{%
    	\vspace{2ex}\noindent
    	\hfill\textsc{\uppercase{\@car#2\@nil}\@cdr#2\@nil}%
    	\ifx&#1&\else, \emph{#1}\fi
    	\hfill\null\par\nobreak}
     
    \newcommand\debut@vers[2]{%
    	\hspace{#1}%
    	\unless\ifx\vers@incomplet\@empty
    		\hphantom{\vers@incomplet\ }\let\vers@incomplet\@empty
    		\vers@incompletfalse
    	\fi
    	\ifvers@incomplet\def\vers@incomplet{#2}\fi
    	#2}
     
    \let\vers@incomplet\@empty
     
    \newcommand\definit@vers[2]{%
    	\newcommand#1{%
    		\@ifstar
    		{\vers@incomplettrue\csname @\expandafter\@gobble\string#1\endcsname}%
    		{\vers@incompletfalse\csname @\expandafter\@gobble\string#1\endcsname}}%
    	\expandafter\newcommand\csname @\expandafter\@gobble\string#1\endcsname[1]{%
    		\debut@vers{#2}{##1}\par}}
     
    \definit@vers\un    {6.5cm}
    \definit@vers\deux  {6  cm}
    \definit@vers\trois {5.5cm}
    \definit@vers\quatre{5  cm}
    \definit@vers\cinq  {4.5cm}
    \definit@vers\six   {4  cm}
    \definit@vers\sept  {3.5cm}
    \definit@vers\huit  {3  cm}
    \definit@vers\neuf  {2.5cm}
    \definit@vers\dix   {2  cm}
    \definit@vers\onze  {1.5cm}
    \definit@vers\alex  {1  cm}
    \definit@vers\treize{1  cm}
     
    \newcommand\dariolette[1][]{\affiche@personnage[#1]{dariolette}}
    \newcommand\trivelin[1][]{\affiche@personnage[#1]{trivelin}}
    \newcommand\unbonpetit[1][]{\affiche@personnage[#1]{un bon petit}}
    \newcommand\celadon[1][]{\affiche@personnage[#1]{celadon}}
     
    \makeatother
     
    \begin{document}
    \dariolette[impatiente]
    \alex{Hélas! pour moi le temps coule trop lentement;}
    \alex{La fête d'aujourd'hui me paraît fort jolie,}
    \alex{Je voudrais contenter aussi ma fantaisie,}
    \alex{Mais mon âge s'oppose à cette volonté:}
    \alex{Je suis trop jeune. Hélas! Dure nécessité}
    \alex{Qui m'oblige à rester encore quelques temps fille!}
    \alex*{Ah! c'est un grand malheur.}
     
    \trivelin
    \alex{Elle est toute gentille.}
    \alex{De son raisonnement je ne suis point surpris.}
    \alex{Par ma foi, la nature est de tous les pays.}
    \alex{Mignonne, dites-moi: quand vous serez dans l'âge}
    \alex{Qui sous le joug d'hymen permet que l'on s'engage,}
    \alex{Vous arrêterez-vous toujours au même choix?}
     
    \unbonpetit[pédagogue]
    \huit{Et voici un vers de huit pieds}
    \huit{Ici, en voici un autre}
    \huit*{Celui-ci,}
     
    \celadon
    \huit{il continue là}
    \huit{En effet, il est bien placé}
    \huit{Mais je dois dire que vos vers}
    \huit{N'égalent en rien les précédents!}
    \end{document}
    Citation Envoyé par Celadon Voir le message
    Tu as quelque site ou livre à me conseiller pour m'aider dans cette tache ardue ? (Je vais chercher pendant ce temps, mais on ne sait jamais.)
    Bah, tout dépend de ce que tu veux faire. TeX, c'est pour la programmation et les trucs de très bas niveau, il y a toujours le TeXbook, si ardu à lire. Tu me sembles plus proche de l'utilisateur de LaTeX c'est pourquoi je te conseillerais le LaTeX Companion

  11. #11
    Invité
    Invité(e)
    Par défaut
    Heu, je me rends compte que le code que je t'ai proposé a un défaut : le placement des vers dépend de \parindent ce qui n'est pas normal.

    Voici une version un peu améliorée, avec un peu plus de factorisation de code et une macro qui définit les acteurs avec un argument optionnel au cas où le nom de l'acteur n'est pas celui de la séquence de contrôle :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    \documentclass[a4paper,12pt]{book}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[top=2cm,bottom=2cm,left=3cm,right=3cm]{geometry}
    \usepackage[frenchb]{babel}
    \makeatletter
    \newif\ifvers@incomplet
    \vers@incompletfalse
     
    \newcommand*\affiche@personnage[2][]{%
    	\vspace{2ex}\noindent
    	\hfill\textsc{\uppercase{\@car#2\@nil}\@cdr#2\@nil}%
    	\ifx&#1&\else, \emph{#1}\fi
    	\hfill\null\par\nobreak}
     
    \newcommand*\affiche@vers[2]{%
    	\noindent\hspace{#1}%
    	\unless\ifx\vers@incomplet\@empty
    		\hphantom{\vers@incomplet\ }\let\vers@incomplet\@empty
    		\vers@incompletfalse
    	\fi
    	\ifvers@incomplet\def\vers@incomplet{#2}\fi
    	#2\par}
     
    \newcommand*\definit@vers[2]{%
    	\newcommand*#1{\@ifstar
    		{\vers@incomplettrue\affiche@vers{#2}}%
    		{\vers@incompletfalse\affiche@vers{#2}}}}
     
    \newcommand\definit@acteur[2][]{%
    	\expandafter\newcommand\expandafter*\csname#2\endcsname[1][]{%
    		\ifx&#1&\empty\affiche@personnage[##1]{#2}%
    		\else\affiche@personnage[##1]{#1}%
    		\fi}}
     
    \definit@vers\un    {6.5cm}
    \definit@vers\deux  {6  cm}
    \definit@vers\trois {5.5cm}
    \definit@vers\quatre{5  cm}
    \definit@vers\cinq  {4.5cm}
    \definit@vers\six   {4  cm}
    \definit@vers\sept  {3.5cm}
    \definit@vers\huit  {3  cm}
    \definit@vers\neuf  {2.5cm}
    \definit@vers\dix   {2  cm}
    \definit@vers\onze  {1.5cm}
    \definit@vers\alex  {1  cm}
    \definit@vers\treize{1  cm}
     
    \definit@acteur{dariolette}
    \definit@acteur{trivelin}
    \definit@acteur[un bon petit]{unbonpetit}
    \definit@acteur{celadon}
    \definit@acteur[céline]{celine}
     
    \let\vers@incomplet\@empty
    \makeatother
     
    \begin{document}
    \dariolette[impatiente]
    \alex{Hélas! pour moi le temps coule trop lentement;}
    \alex{La fête d'aujourd'hui me paraît fort jolie,}
    \alex{Je voudrais contenter aussi ma fantaisie,}
    \alex{Mais mon âge s'oppose à cette volonté:}
    \alex{Je suis trop jeune. Hélas! Dure nécessité}
    \alex{Qui m'oblige à rester encore quelques temps fille!}
    \alex*{Ah! c'est un grand malheur.}
     
    \trivelin
    \alex{Elle est toute gentille.}
    \alex{De son raisonnement je ne suis point surpris.}
    \alex{Par ma foi, la nature est de tous les pays.}
    \alex{Mignonne, dites-moi: quand vous serez dans l'âge}
    \alex{Qui sous le joug d'hymen permet que l'on s'engage,}
    \alex{Vous arrêterez-vous toujours au même choix?}
     
    \unbonpetit[pédagogue]
    \huit{Et voici un vers de huit pieds}
    \huit{Ici, en voici un autre}
    \huit*{Celui-ci,}vois
     
    \celadon
    \huit{il continue là}
    \huit{En effet, il est bien placé}
    \huit{Mais je dois dire que vos vers}
    \huit{N'égalent en rien les précédents!}
     
    \celine
    \neuf{Puisque mon nom contient un accent,}
    \neuf{Moi, j'ai un traitement de faveur!}
    \neuf{En effet, \LaTeX{} ne permet pas}
    \neuf{Ce genre de diacritique}
    \neuf{Dans les séquences de contrôle\ldots}
    \end{document}

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut
    Pardon, j'ai été absent quelques temps, absorbé par d'autres contraintes.
    Ce code m'a l'air fabuleux ! au-delà de toutes les espérances ! Je ne le comprends pas vraiment, mais bon...
    Il va falloir modifier les personnages dans les fichiers existants, mais cela n'est pas très difficile. En revanche, il y a quelques cas où nous n'avions pas créé de commande spécifique pour le personnage, par exemple quand c'était juste un laquais qui venait dire une réplique, on écrivait :
    \pers{un laquais}
    Blablabla...
    Du coup, je ne vois pas comment je dois faire cela avec le nouveau régime de personnage ?
    Autre tout petit problème : dans l'idéal, le nom de personnage n'a pas de majuscule à l'initiale et s'écrit tout en "petites capitales". La solution que j'avais fini par adopter était de ne pas mettre de majuscule dans l'argument, soit d'écrire \pers{un laquais} et non \pers{Un laquais}. Comme je suis en présence d'un maître, j'en profite pour demander (encore) cela aussi.

    Par ailleurs, je me suis procuré le TeX-book et le LaTeX companion. Dans le TeX-book, je ne lis pas les passages avec des panneaux pour l'instant. Mais je crois qu'il faudra néanmoins lire les chapitres sur les maths...

    Encore merci !

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Celadon Voir le message
    En revanche, il y a quelques cas où nous n'avions pas créé de commande spécifique pour le personnage, par exemple quand c'était juste un laquais qui venait dire une réplique, on écrivait :
    \pers{un laquais}
    Blablabla...
    Du coup, je ne vois pas comment je dois faire cela avec le nouveau régime de personnage ?
    Et typographiquement, comment doit se traduire le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    \pers{un laquais}Blablabla
    Est-ce que la création d'un nouvel acteur de cette façon ne suffit pas :
    \definit@acteur[un laquais]{laquais}
    puis, on écrirait
    \laquais
    \alex{Blablabla}

    Autre tout petit problème : dans l'idéal, le nom de personnage n'a pas de majuscule à l'initiale et s'écrit tout en "petites capitales".
    C'est une faute de typographie. Tous les noms propres doivent prendre une majuscule écrite en capitale, même s'ils les noms sont écrits en petites capitales (ne pas confondre majuscule et capitale).
    La solution que j'avais fini par adopter était de ne pas mettre de majuscule dans l'argument, soit d'écrire \pers{un laquais} et non \pers{Un laquais}. Comme je suis en présence d'un maître, j'en profite pour demander (encore) cela aussi.
    Je ne suis pas un maître, loin s'en faut. Par contre, je suis absolument certain que la première lettre des noms propres doit être écrite en majuscule.
    Par ailleurs, je me suis procuré le TeX-book et le LaTeX companion. Dans le TeX-book, je ne lis pas les passages avec des panneaux pour l'instant. Mais je crois qu'il faudra néanmoins lire les chapitres sur les maths...
    Attention, le texbook est ardu à lire. Les paragraphes à double panneaux dangereux sont bien évidemment les plus intéressants (et les plus nombreux aussi).

  14. #14
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par unbonpetit Voir le message
    C'est une faute de typographie. Tous les noms propres doivent prendre une majuscule écrite en capitale, même s'ils les noms sont écrits en petites capitales (ne pas confondre majuscule et capitale)
    Dans les éditions de théâtre, l'usage courant est soit de mettre le nom du personnage avant la réplique mais sur la même ligne, en général en petites capitales avec une majuscule à l'initiale, et avec un tiret — ; soit de le mettre sur une ligne isolée centré avant la réplique, auquel cas il est généralement tout en capitales, mais sans distinction de majuscule (ce que j'ai pu vérifier dans des éditions du XVIIIe, et dans des éditions modernes en Classiques Garniers, en Pléiade, et GF, c'est déjà un bon échantillonnage). En revanche, ces capitales sont plus petites que les majuscules du texte lui même. Je suis absolument sûr de ça !

    Est-ce que la création d'un nouvel acteur de cette façon ne suffit pas :
    \definit@acteur[un laquais]{laquais}
    puis, on écrirait
    \laquais
    \alex{Blablabla}
    Sans doute, mais est-ce qu'on peut utiliser \definit@acteur ailleurs que dans le préambule ? Sinon, évidemment qu'on peut s'en accommoder, mais autant travailler au plus simple.
    À noter aussi qu'il y a de la prose dans les textes, tout n'est pas en vers, et la prose n'est introduite par rien, donc on a :
    \laquais
    Blablabla


    Attention, le texbook est ardu à lire. Les paragraphes à double panneaux dangereux sont bien évidemment les plus intéressants (et les plus nombreux aussi).
    Je me doute, mais je procède avec ordre : d'abord je lis une première fois sans les panneaux, pour me donner une idée d'ensemble, et ensuite je reviendrai sur les paragraphes les plus intéressants
    En pratique, on peut insérer n'importe quel code TeX au milieu du LaTeX ?
    J'ai aussi trouvé un TeX pour l'impatient en ligne, qui m'a l'air bien pour compléter le TeXbook (mon nouveau livre de chevet).

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Celadon Voir le message
    Dans les éditions de théâtre, l'usage courant est soit de mettre le nom du personnage avant la réplique mais sur la même ligne, en général en petites capitales avec une majuscule à l'initiale, et avec un tiret — ; soit de le mettre sur une ligne isolée centré avant la réplique, auquel cas il est généralement tout en capitales, mais sans distinction de majuscule (ce que j'ai pu vérifier dans des éditions du XVIIIe, et dans des éditions modernes en Classiques Garniers, en Pléiade, et GF, c'est déjà un bon échantillonnage). En revanche, ces capitales sont plus petites que les majuscules du texte lui même. Je suis absolument sûr de ça !
    En effet, je viens de vérifier sur un bouquin de théâtre. Les noms sont écrits en petite capitales sans que la majuscule ne soit en capitale. C'est étonnant, mais à moins que tu ne me donnes un lien vers un site de typo où cette règle serait écrite, d'après ce que je sais, je persiste à dire qu'il s'agit d'une erreur de typo.

    Sans doute, mais est-ce qu'on peut utiliser \definit@acteur ailleurs que dans le préambule ? Sinon, évidemment qu'on peut s'en accommoder, mais autant travailler au plus simple.
    Ben après, il faut bidouiller le code pour l'adapter à ce que tu veux. Les noms de commande qui contiennent un "@" ne peuvent être utilisés qu'entre les \makeatletter et \makeatother ou dans le code d'un package. Ces commandes sont privées et ne sont pas destinées à être utilisés ailleurs que dans les endroits sus cités.

    Si tu veux les rendre publiques, tu enlèves le "@" ou tu les renommes, c'est pas difficile ! Comme ça, par exemple :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    \documentclass[a4paper,12pt]{book}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[top=2cm,bottom=2cm,left=3cm,right=3cm]{geometry}
    \usepackage[frenchb]{babel}
    \makeatletter
    \newif\ifvers@incomplet
    \vers@incompletfalse
     
    \newcommand*\pers[2][]{%
    	\vspace{2ex}\noindent
    	\hfill\textsc{#2}\ifx&#1&\else, \emph{#1}\fi\hfill\null\par\nobreak}
     
    \newcommand*\affiche@vers[2]{%
    	\noindent\hspace{#1}%
    	\unless\ifx\vers@incomplet\@empty
    		\hphantom{\vers@incomplet\ }\let\vers@incomplet\@empty
    		\vers@incompletfalse
    	\fi
    	\ifvers@incomplet\def\vers@incomplet{#2}\fi
    	#2\par}
     
    \newcommand*\definit@vers[2]{%
    	\newcommand*#1{\@ifstar
    		{\vers@incomplettrue\affiche@vers{#2}}%
    		{\vers@incompletfalse\affiche@vers{#2}}}}
     
    \newcommand\definitacteur[2][]{%
    	\expandafter\newcommand\expandafter*\csname#2\endcsname[1][]{%
    		\ifx&#1&\empty\pers[##1]{#2}%
    		\else\pers[##1]{#1}%
    		\fi}}
     
    \definit@vers\un    {6.5cm}
    \definit@vers\deux  {6  cm}
    \definit@vers\trois {5.5cm}
    \definit@vers\quatre{5  cm}
    \definit@vers\cinq  {4.5cm}
    \definit@vers\six   {4  cm}
    \definit@vers\sept  {3.5cm}
    \definit@vers\huit  {3  cm}
    \definit@vers\neuf  {2.5cm}
    \definit@vers\dix   {2  cm}
    \definit@vers\onze  {1.5cm}
    \definit@vers\alex  {1  cm}
    \definit@vers\treize{1  cm}
     
    \let\vers@incomplet\@empty
    \makeatother
     
    \definitacteur{dariolette}
    \definitacteur{trivelin}
    \definitacteur[un bon petit]{unbonpetit}
    \definitacteur{celadon}
    \definitacteur[céline]{celine}
    \begin{document}
    \dariolette[impatiente]
    \alex{Hélas! pour moi le temps coule trop lentement;}
    \alex{La fête d'aujourd'hui me paraît fort jolie,}
    \alex{Je voudrais contenter aussi ma fantaisie,}
    \alex{Mais mon âge s'oppose à cette volonté:}
    \alex{Je suis trop jeune. Hélas! Dure nécessité}
    \alex{Qui m'oblige à rester encore quelques temps fille!}
    \alex*{Ah! c'est un grand malheur.}
     
    \trivelin
    \alex{Elle est toute gentille.}
    \alex{De son raisonnement je ne suis point surpris.}
    \alex{Par ma foi, la nature est de tous les pays.}
    \alex{Mignonne, dites-moi: quand vous serez dans l'âge}
    \alex{Qui sous le joug d'hymen permet que l'on s'engage,}
    \alex{Vous arrêterez-vous toujours au même choix?}
     
    \definitacteur[un laquais]{laquais}
     
    \laquais
    Je suis un laquais, et je parle en prose. Par conséquent, le texte
    n'est pas mis en forme comme ceux qui parlent en vers. Il s'agit d'un
    paragraphe normal pour \LaTeX.
     
    \pers[se lamentant]{une servante}
    Et bien, si la largeur et le retrait ne convient pas, il va falloir les
    redéfinir, mais je ne suis pas sûre que notre typographe amateur
    sache le faire\ldots
     
    \laquais[visionnaire]
    Oui, on est fort mal traité dans ce document.
    Même les majuscules sont malmenées,
    nos maitres n'ont plus aucune notion de typographie, c'est une honte !
    Je propose que nous fassions une révolution sans tarder !
    \end{document}
    Je me doute, mais je procède avec ordre : d'abord je lis une première fois sans les panneaux, pour me donner une idée d'ensemble, et ensuite je reviendrai sur les paragraphes les plus intéressants
    Moi, la première fois, j'ai lu sans distinction de panneaux. De toutes façon, le TeXbook ne se lit pas une fois, il se lit plusieurs fois. J'avoue que je l'ai lu linéairement plusieurs fois jusqu'au chapitre 20. La suite, au coup par coup. Quant à certains chapitres (alignements, routines de sorties), une seule fois tellement c'est difficile et peu utilisé.

    Le problème du TeXbook, c'est que le contenu est d'un haut niveau de technicité. Certaines pages sont tout bonnement quasi-incompréhensibles et la plupart des autres sont très vite oubliées, même si on met en pratique immédiatement sur son PC. Peut-être que tu n'as pas bien mesuré la difficulté de ce livre...

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut
    Le problème du TeXbook, c'est que le contenu est d'un haut niveau de technicité. Certaines pages sont tout bonnement quasi-incompréhensibles et la plupart des autres sont très vite oubliées, même si on met en pratique immédiatement sur son PC. Peut-être que tu n'as pas bien mesuré la difficulté de ce livre...
    Attention, je pense aussi que c'est très complexe, mais ça n'est pas rebutant. Il y a des bouquins d'informatiques, on a l'impression dès le départ qu'on ne comprendra rien, alors que là, on a envie de s'accrocher... Bref, c'est un vécu très personnel. Quant à relire, ça ne fait aucun doute : je ne retiens pas grand-chose pour l'instant, j'essaie surtout de me plonger un peu dedans. Quant il s'agira réellement de travailler avec, de tout comprendre, je rigolerai beaucoup moins.

    Qu'est-ce que ça change qu'il y ait un @ ou pas ? Je peux toujours, si c'est mieux qu'il y en ait, m'arranger pour introduire tous les personnages dans le préambule d'une façon ou d'une autre...

    Pour revenir au problème principal, je viens d'être confronté à un cas où le vers est coupé sur 3 personnages :
    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
    \junon
    \sept{Suis mes conseils, ils sont bons.}
     
    \pallas
    \sept*{Va.}
     
    \junon
    \sept*{N'en fais rien, reste.}
     
    \pallas
    \sept{Non.}
     
    \cadmus
    \dix{Accordez-vous donc; accordez-vous donc;}
    \sept{L'amour m'appelle, au revoir,}
    \sept{Je vous donne le bonsoir.}
    "Va. — N'en fais rien, reste. — Non." est un seul vers. On voit donc que j'ai essayé de mettre deux fois \sept*{}, évidemment ça ne marche pas comme ça...
    Est-ce faisable ? Si non, c'est déjà très très impressionnant... (Et ce n'est pas juste une bizarrerie de mes pièces : il y a ça dès le début d'Hernani.)

    En ce qui concerne la typographie et les majuscules, c'est une question d'habitude... Il est vrai que c'est un peu étonnant. Mais si tout le monde le fait, il doit bien y avoir une raison.
    Quant aux paragraphes normaux, ils sont très bien à rester normaux, à utiliser : il faut bien que quelque chose utilise toute la largueur de la page, tout de même !

  17. #17
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Celadon Voir le message
    Quant il s'agira réellement de travailler avec, de tout comprendre, je rigolerai beaucoup moins.
    Voilà, c'est exactement ça !
    Qu'est-ce que ça change qu'il y ait un @ ou pas ?
    Intrisèquement : rien.
    Par contre, sémantiquement, c'est plus rigouruex. Cela veut dire que les macros qui ont un "@" dans leur nom sont des macros qui ne sont pas destinés à figurer dans le document, mais des "sous-macros" utilisés par des macros de plus haut niveau qui elles, sont à utiliser dans le document.
    Est-ce faisable ?
    Arf ! Mais TeX est un langage complet, c'est à dire qu'il dispose de toutes les fonctionnalités minimales pour écrire n'importe quel algorithme. Tout comme le sont le C, le pascal, et des langages de plus haut niveau. Alors, c'est évidemment faisable. Très facilement même ! Voici un code (pas beaucoup testé, sujet à erreur donc) qui prend en compte ce que tu veux.
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    \documentclass[a4paper,12pt]{book}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[top=2cm,bottom=2cm,left=3cm,right=3cm]{geometry}
    \usepackage[frenchb]{babel}
    \makeatletter
    \newif\ifvers@incomplet
    \vers@incompletfalse
     
    \newcommand*\pers[2][]{%
    	\vspace{2ex}\noindent
    	\hfill\textsc{#2}\ifx&#1&\else, \emph{#1}\fi\hfill\null\par\nobreak}
     
    \newcommand*\affiche@vers[2]{%
    	\noindent\hspace{#1}%
    	\unless\ifx\vers@incomplet\@empty\hphantom{\vers@incomplet\ }\fi
    	\ifvers@incomplet\g@addto@macro\vers@incomplet{#2 }%
    	\else\let\vers@incomplet\@empty
    	\fi
    	#2\par}
     
    \newcommand*\definit@vers[2]{%
    	\newcommand*#1{\@ifstar
    		{\vers@incomplettrue\affiche@vers{#2}}%
    		{\vers@incompletfalse\affiche@vers{#2}}}}
     
    \newcommand\definitacteur[2][]{%
    	\expandafter\newcommand\expandafter*\csname#2\endcsname[1][]{%
    		\ifx&#1&\empty\pers[##1]{#2}%
    		\else\pers[##1]{#1}%
    		\fi}}
     
    \definit@vers\un    {6.5cm}
    \definit@vers\deux  {6  cm}
    \definit@vers\trois {5.5cm}
    \definit@vers\quatre{5  cm}
    \definit@vers\cinq  {4.5cm}
    \definit@vers\six   {4  cm}
    \definit@vers\sept  {3.5cm}
    \definit@vers\huit  {3  cm}
    \definit@vers\neuf  {2.5cm}
    \definit@vers\dix   {2  cm}
    \definit@vers\onze  {1.5cm}
    \definit@vers\alex  {1  cm}
    \definit@vers\treize{1  cm}
     
    \let\vers@incomplet\@empty
    \makeatother
     
    \definitacteur{dariolette}
    \definitacteur{junon}
    \definitacteur{pallas}
    \definitacteur{cadmus}
    \begin{document}
    \dariolette[impatiente]
    \alex{Hélas! pour moi le temps coule trop lentement;}
    \alex{La fête d'aujourd'hui me paraît fort jolie,}
    \alex{Je voudrais contenter aussi ma fantaisie,}
     
    \junon
    \sept{Suis mes conseils, ils sont bons.}
     
    \pallas
    \sept*{Va.}
     
    \junon
    \sept*{N'en fais rien, reste.}
     
    \pallas
    \sept{Non.}
     
    \cadmus
    \dix{Accordez-vous donc; accordez-vous donc;}
    \sept{L'amour m'appelle, au revoir,}
    \sept{Je vous donne le bonsoir.}
    \end{document}

  18. #18
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut
    Cela me semble excellent : je l'ai intégré à quelques pièces (quatre, je crois), et cela ne manque pas de donner de beaux résultats.
    Je proposerai bientôt d'autres difficultés, mais je dois d'abord travailler dessus. Après tout, maintenant j'ai des exemples et le TeXbook pour essayer d'y voir plus clair. Il faut que j'étudie en particulier les \if... À bientôt sans doute, donc !
    Et merci merci merci !

  19. #19
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 72
    Points
    72
    Par défaut
    Bonjour !
    Cette macro fonctionne très bien telle quelle, pas de problème.
    Seulement, je suis incapable de lui appliquer un changement qui me paraît tout simple : si je veux par exemple que les vers soient en petit ? Je pense qu’il faut mettre \small quelque part, mais où ?
    N’hésitez surtout pas à me dire si c’est compliqué ou si ça risque de poser des problèmes... C’est simplement que j’ai cette demande de temps en temps (c’est une tradition dans certains textes au XVIIIe), et si c’est faisable simplement, autant ne pas s’en priver !
    Merci d’avance !

  20. #20
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Celadon Voir le message
    Je pense qu’il faut mettre \small quelque part, mais où ?
    Ben dans l'argument des vers, pardi !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \sept*{\footnotesize N'en fais rien, reste.\normalsize}

Discussions similaires

  1. Réponses: 13
    Dernier message: 13/08/2007, 14h29
  2. Réponses: 4
    Dernier message: 24/05/2007, 15h04
  3. Réponses: 2
    Dernier message: 13/12/2006, 20h30
  4. Réponses: 2
    Dernier message: 18/05/2006, 13h38
  5. selection sur une table en fonction de plusieurs ligne
    Par dimdidi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/12/2004, 08h42

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