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

Mise en forme Discussion :

"Paragraphe solidaires" en LaTeX


Sujet :

Mise en forme

  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 "Paragraphe solidaires" en LaTeX
    Bonjour à tous,
    Tout nouveau sur ces forums, je ne sais pas s'il y existe une fonction de recherche. N'hésitez donc pas à m'y renvoyer si la question que je vais poser y a déjà été traité, en m'indiquant où utiliser ladite fonction.

    Je travaille sur LaTeX depuis peu de temps, et d'une façon assez inhabituel : ce n'est pas pour des travaux scientifiques, mais pour du théâtre musical. En effet, LaTeX peut être combiner avec LilyPond (grâce à une fonction lilypond-book), ce qui permet d'intégrer de larges exemples musicaux dans mon texte. J'ai cependant déjà rencontré quelques problèmes avec cela, mais j'aimerais auparavant en résoudre un autre.
    L'édition d'un texte de théâtre m'a amené à créer des commandes pour les noms de personnages, les actes, les scènes ; sous Microsoft Word, j'utilisais, pour éviter que ce genre d'indications se trouvent isolées en bas de page, la fonction "paragraphes solidaires". Qu'ai-je d'équivalent sous LaTeX ?

    En vous remerciant par avance de vos réponses,
    C.

  2. #2
    Membre expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Points : 3 378
    Points
    3 378
    Par défaut
    Bonjour et bienvenue,

    Oui, il y a une fonction de recherche (il suffit de chercher - avec ctrl+f - "Recherche" dans la page d'un forum ).
    Ceci dit la question me semble assez originale...

    Un environnement minipage doit avoir ce genre d'effet, mais ce n'est sans doute pas la seule solution...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    \begin{minipage}{\linewidth}
       Un paragraphe
     
       Un autre paragraphe presque aussi court
    \end{minipage}
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  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
    Bonjour,
    Je ne crois pas que le minipage convienne pour ce genre d'usage : il s'agit en effet d'attacher un court paragraphe (une ligne ou deux : titre ou assimilé) au premier paragraphe qui le suit afin d'éviter d'avoir le titre tout seul au bas d'une page. Mais cela peut parfois attacher plusieurs paragraphes, s'il y a plusieurs titres à suivre. Ainsi, dans mon cas, celui d'une pièce de théâtre, le début d'acte doit voir "liés" Acte - scène - liste des personnages de la scène - nom du premier personnage qui parle - réplique de ce personnage. En réalité, c'est que chaque "style" est attaché au suivant...
    Si cela peut vous être utile, je pourrai vous poster un extrait de texte avec les lignes \newcommand... que j'ai mises dans le préambule.

  4. #4
    Membre expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Points : 3 378
    Points
    3 378
    Par défaut
    Citation Envoyé par Celadon Voir le message
    Si cela peut vous être utile, je pourrai vous poster un extrait de texte avec les lignes \newcommand... que j'ai mises dans le préambule.
    Oui, ce serait même bien d'envoyer un ECM (exemple complet minimal).
    Et aussi d'être plus précis sur ce que tu entends par "attaché", "paragraphes solidaires"... Je crois que j'avais mal compris jusque là ce que tu souhaites faire.
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par pitipoisson Voir le message
    Oui, ce serait même bien d'envoyer un ECM (exemple complet minimal).
    Je n'ose même plus le demander tellement j'ai l'impression que les membres de ce forum demandent des aides sans jamais fournir de code et les rares fois ou l'on en voit, ce n'est pas un ECM. Il faut être un peu devin ici, apparemment

    Et aussi d'être plus précis sur ce que tu entends par "attaché", "paragraphes solidaires"... Je crois que j'avais mal compris jusque là ce que tu souhaites faire.
    Je reprends ce que disait pitipoisson, l'environnement minipage (ou \parbox, mais c'est pareil) me semble adapté pour écrire des paragraphes sans qu'il ne se produise de saut de page entre eux. On peut aussi mettre des \nobreak partout si on veut.

    Christian

  6. #6
    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
    Je n'ai pas envoyé d'exemple avant qu'on me le demande, dans la mesure où sur certains forums que j'ai un peu fréquentés, il était dûment précisé de ne pas donner de code tant que ce n'était pas expressément demandé par un des "aideurs".
    Je vais essayer \nobreak, et je vous tiens au courant sur le résultat. Merci !

  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
    Bon, après un long silence, beaucoup de recherches, d'essais, de mon côté, j'en suis toujours au même point.
    \nobreak, ça ne fonctionne pas.
    Voici unn petit exemple qui vous permettra de voir un peu ce que je veux faire :
    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
    \documentclass{article}
    \usepackage[francais]{babel}	
    \usepackage[T1]{fontenc}	
    \usepackage[latin1]{inputenc}	
     
    \newcommand\pers[2][]{%
    	\begin{center}%
    		\textsc{#2}%
    		\ifx\empty#1\empty\else, \emph{#1}\fi
    	\end{center}%
    	\par
    }
     
    \begin{document}
     
    \pers{Scaramouche}
    Eh! quoi mon cher Trivelin vous entendrai-je toujours pester contre l'amour, ne cesserez-vous  jamais de vous plaindre.
     
    \pers[sortant]{Trivelin}
    J'aperçois Macé, retirons-nous pour un moment.
     
    \end{document}
    Après chaque \pers{}, il faut aller à la ligne, mais ne jamais sauter de page. Par ailleurs, LaTeX insère aussi un assez grand espace (vertical) dont je ne veux pas, ou pour mieux dire, je voudrais qu'il soit petit. Je pense que c'est \par que je n'utilise peut-être pas bien...
    Soit dit en passant, j'aurai (j'ai) le même problème avec plein d'autres commandes que j'ai créées aussi !
    Merci d'avance !

  8. #8
    Invité
    Invité(e)
    Par défaut
    Si \nobreak fonctionne !!!

    Voici le code qui produit le problème. Il suffit de supprimer \nobreak pour voir que cette commande empêche bien la coupure de page après la phrase centrée.

    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
     
    \documentclass{article}
    \usepackage[francais]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
     
    \newcommand\pers[2][]{%
        \vspace{3ex}\hfill
            \textsc{#2}%
            \ifx\empty#1\empty\else, \emph{#1}\fi
        \hfill\null\par\nobreak% commenter \nobreak pour voir la différence
    }
     
    \begin{document}
    \vspace*{16cm}
     
    \pers{Scaramouche}
    Eh! quoi mon cher Trivelin vous entendrai-je toujours pester contre l'amour, ne cesserez-vous  jamais de vous plaindre.
     
    \pers[sortant]{Trivelin}
    J'aperçois Macé, retirons-nous pour un moment.
     
    \pers{Scaramouche}
    Eh! quoi mon cher Trivelin vous entendrai-je toujours pester contre l'amour, ne cesserez-vous  jamais de vous plaindre.
    \end{document}

  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
    Merci beaucoup pour cette commande. Je vois que ça marche, effectivement !
    Je pense que c'est le fait d'utiliser un environnement (center) qui rend inopérante la commande nobreak, puisque là c'est un autre fonctionnement.
    Pouvez-vous m'expliquer en détail cette nouvelle commande, pour que je puisse appliquer les "recettes" ) d'autres commandes moi aussi, et m'instruire ? Merci d'avance.

    Rappel de la commande magique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    \newcommand\pers[2][]{%
        \vspace{3ex}\hfill
            \textsc{#2}%
            \ifx\empty#1\empty\else, \emph{#1}\fi
        \hfill\null\par\nobreak% commenter \nobreak pour voir la différence
    }

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ben le fonctionnement est assez simple :
    insère un espace vertical de 3ex puis insère un espace élastique horizontal infini d'ordre 2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    \textsc{#2}%
    \ifx\empty#1\empty\else, \emph{#1}\fi
    applique la mise en forme puis teste si l'argument entre crochet n'est pas vide et si c'est pas le cas, insère une virgule et cet argument en italique
    Ceci insère un autre espace élastique infini suivi d'une boite vide pour qu'il soit pris en compte. Conjugué avec le premier espace infini, on obtient un centrage de ce qui se trouve entre les 2 espaces infinis d'ordre 2.
    Enfin, on marque signifie la fin du paragraphe, et \nobreak applique une très forte pénalité au changement de page à cet endroit, ce qui revient à quasiment l'interdire.

    Au lieu d'employer 2 ressorts infinis d'ordre 2, on aurait aussi pu utiliser la commande \centering en la mettant dans un groupe semi simple pour limiter son champ d'action (ce code est d'ailleurs préférable) :
    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
     
    \documentclass{article}
    \usepackage[francais]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
     
    \newcommand\pers[2][]{%
        \vspace{3ex}%
        \begingroup
            \centering
            \textsc{#2}%
            \ifx\empty#1\empty\else, \emph{#1}\fi
            \par\nobreak
        \endgroup
    }
     
    \begin{document}
    \noindent
    \vspace*{16cm}
     
    \pers{Scaramouche}
    Eh! quoi mon cher Trivelin vous entendrai-je toujours pester contre l'amour, ne cesserez-vous  jamais de vous plaindre.
     
    \pers[sortant]{Trivelin}
    J'aperçois Macé, retirons-nous pour un moment.
     
    \pers{Scaramouche}
    Eh! quoi mon cher Trivelin vous entendrai-je toujours pester contre l'amour, ne cesserez-vous  jamais de vous plaindre.
    \end{document}

  11. #11
    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'accord, merci ! Je ne connaissais pas \hfill, je me suis donc renseigné et j'ai compris du même coup pour \null... J'ai encore quelques tests à faire avant de cliquer sur "résolu" ! Mais encore merci !

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

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55
  2. [WORD]tableau et paragraphe solidaire
    Par valal dans le forum Word
    Réponses: 8
    Dernier message: 22/09/2006, 18h20

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