Projet recueil des cantiques : environnement refrain

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.

Projet recueil des cantiques : environnement refrain

Messagepar Rock » Mercredi 24 Avril 2019, 13:50

Bonjour à tous

Je suis en train de travailler sur un recueil de cantiques en LaTeX. En cherchant, je suis tombé sur le sujet https://openclassrooms.com/forum/sujet/latex-projet-carnet-de-chant qui m'a beaucoup intéressé. Tout marche bien sauf que j'aimerai modifier l'environnement refrain pour que le texte ne puisse pas traverser la séparation des colonnes.

En fait, j'utilise la classe book et le livre devra être imprimé en recto verso.

Voici donc mon ECM :

Code: Tout sélectionner
\documentclass[a4paper,12pt,twocolumn,twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[margin=1.5cm]{geometry}
\usepackage{titlesec,titletoc}
\usepackage[francais]{babel}
\usepackage[babel=true]{csquotes} % csquotes va utiliser la langue définie dans babel
\renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}}
\renewcommand{\thesection}{\arabic{section}}
\setcounter{section}{0}
\titleformat{\section}[block]{\normalfont\normalsize\bfseries}{\thesection.}{1em}{}
\titlecontents{section}[0pt]{}{\thecontentslabel.~}{}{\titlerule*[.75pc]{.}\contentspage}
\makeatletter
\newcount\cnt@couplet
 
\newcommand*\chant@cr{\endgraf\nobreak}
 
\newcommand*\process@active[2]{%
    \catcode`#113
    \begingroup\lccode`\~`#1\lowercase{\endgroup#2}%
}
 
\newenvironment{chant}
{\process@active\^^M{\let~}\chant@cr
    \process@active\*{\def~}{%
        \global\advance\cnt@couplet\@ne
        \bigbreak\quitvmode%
        \llap{}%
        \ignorespaces
    }%
    \def\par{\penalty-50 \endgraf}%
    \parindent\z@
    \global\cnt@couplet\z@
}
\relax
 
 
\newcommand*\repeter[1][bis]{%
    \begingroup
    \process@active\^^M{\let~}\cr
    \repeter@i{#1}%
}
 
\newcommand\repeter@i[2]{%
    \setbox\z@\vtop{\halign{##\hfil\cr#2\crcr}}%
    \leavevmode\copy\z@
    \draw@brace{#1}%
    \endgroup
}
 
\newcommand\draw@brace[1]{%
    \setbox\z@\hbox{\lower.5\dp\z@\hbox{\kern.5em $\left.\vrule width\z@ height\z@ depth.5\dp\z@\right\}\hbox{#1}$}}%
    \ht\z@\z@\dp\z@\z@\box\z@
}
 
\newenvironment{refrain}[1][]
    {\medbreak
    \textit{\bfseries Ch\oe{}ur}\endgraf
    \def\refrain@opt{#1}%
    \futurelet\nxt@tok\testnxt@tok
    }
    {\crcr\egroup\egroup
    \leavevmode\copy\z@
    \unless\ifx\refrain@opt\@empty\draw@brace\refrain@opt\fi
    }
 
\newcommand*\testnxt@tok{%
    \ifx\nxt@tok\chant@cr\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
        {\afterassignment\init@boxchant
        \let\nxt@tok=
        }
        \init@boxchant
}
 
\newcommand*\init@boxchant{%
    \process@active\^^M{\let~}\cr
    \setbox\z@\vtop\bgroup\halign\bgroup##\hfil\cr
}
\setlength{\columnseprule}{.5pt}
 
\makeatother
 
\title{Recueil de cantiques}
 
\begin{document}

\maketitle
\raggedbottom
\pagestyle{empty}

\section{APPRENDS-MOI SEIGNEUR, À ATTENDRE F}
 
\begin{chant}
    *Apprends-moi, Seigneur, à attendre
    À genoux jusqu'à ce que Tu m'exauces,
    À me défier de ce que font les autres,
    Et à attendre de Toi une réponse en prière.
     
    \begin{refrain}
        Ceux qui s'attendent au Seigneur, renouvellent leurs forces,
        Ils prendront l'envol comme des aigles,
        Ils courront sans se fatiguer, marcheront sans faiblir,
        Apprends-moi, Seigneur, à attendre.
    \end{refrain}
     
    *Apprends-moi, Seigneur à patienter,
    Aide-moi à m'humilier, à T'invoquer ;
    Renouvelle ma foi et garde mes yeux sur Toi,
    Aide-moi à être ce que Tu veux que je sois.
\end{chant}
 
\section{PORTER UNE COURONNE Ab}
 
\begin{chant}
    *Suis-je bien un soldat de la Croix,
    Disciple de l'Agneau,
    Craindrai-je de soutenir Sa cause,
    De parler de Son Nom ?
     
    \begin{refrain}
        À la fin de la bataille, nous serons couronnés !
        Nous serons couronnés ! Nous serons couronnés !
        À la fin de la bataille, nous serons couronnés,
        Dans la nouvelle Jérusalem.
        Couronnés, couronnés d'une brillante et belle couronne.
        À la fin de la bataille, nous serons couronnés
        Dans la nouvelle Jérusalem.
    \end{refrain}
     
    *Dois-je être transporté au Ciel
    Sur un beau lit d'aisance,
    Quand d'autres combattent, gagnent le prix,
    Naviguant sur le sang ?
     
    *N'ai-je pas d'ennemis à combattre,
    Des vagues à surmonter ?
    Ce monde se joint-il à la grâce
    Pour m'amener à Dieu ?
     
    *Oui, pour régner je dois combattre,
    Redonne courage, Seigneur ;
    Souffrances et peines
    J'endurerai, Aidé par Ta Parole.
\end{chant}
 
\clearpage
 
\tableofcontents
 
\end{document}


Quand je compile, il y a des phrases qui dépassent la ligne séparatrice des colonnes. Est-il possible de modifier l'environnement refrain pour que lorsqu'il y a une longue phrase, qu'elle ne puisse pas traverser la marge de droite mais qu'il y ait automatiquement un retour à la ligne ?

Merci d'avance pour votre aide.
Rock
Utilisateur
 
Messages: 3
Inscription: Mercredi 24 Avril 2019, 11:44
Localisation: Lubumbashi, Haut-Katanga, Rép. Dém. du Congo
Statut actuel: Post-bac | Licence

Publicité

Re: Projet recueil des cantiques : environnement refrain

Messagepar un bon petit » Mercredi 24 Avril 2019, 14:36

Code: Tout sélectionner
\documentclass[a4paper,12pt,twocolumn,twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[margin=1.5cm]{geometry}
\usepackage{titlesec,titletoc}
\usepackage[french]{babel}
\renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}}
\renewcommand{\thesection}{\arabic{section}}
\setcounter{section}{0}
\titleformat{\section}[block]{\normalfont\normalsize\bfseries}{\thesection.}{1em}{}
\titlecontents{section}[0pt]{}{\thecontentslabel.~}{}{\titlerule*[.75pc]{.}\contentspage}
\makeatletter
\newcount\cnt@couplet

\newcommand*\chant@cr{\endgraf\nobreak}

\newcommand*\process@active[2]{%
   \catcode`#113
   \begingroup\lccode`\~`#1\lowercase{\endgroup#2}%
}

\newenvironment{chant}
   {\process@active\^^M{\let~}\chant@cr
   \process@active\*{\def~}{%
      \global\advance\cnt@couplet\@ne
      \bigbreak\quitvmode%
      \llap{}%
      \ignorespaces
      }%
   \def\par{\penalty-50 \endgraf}%
   \parindent\z@
   \global\cnt@couplet\z@
   }
   \relax

\newcommand*\repeter[1][bis]{%
   \begingroup
   \process@active\^^M{\let~}\cr
   \repeter@i{#1}%
}

\newcommand\repeter@i[2]{%
   \setbox\z@\vtop{\halign{##\hfil\cr#2\crcr}}%
   \leavevmode\copy\z@
   \draw@brace{#1}%
   \endgroup
}

\newcommand\draw@brace[1]{%
   \setbox\z@\hbox{\lower.5\dp\z@\hbox{\kern.5em $\left.\vrule width\z@ height\z@ depth.5\dp\z@\right\}\hbox{#1}$}}%
   \ht\z@\z@\dp\z@\z@\box\z@
}

\newenvironment{refrain}[1][]
   {\medbreak
   \textit{\bfseries Ch\oe{}ur}\endgraf
   \def\refrain@opt{#1}%
   \futurelet\nxt@tok\testnxt@tok
   }
   {\egroup
   \unless\ifx\refrain@opt\@empty\draw@brace\refrain@opt\fi
   }

\newcommand*\testnxt@tok{%
   \ifx\nxt@tok\chant@cr\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
      {\afterassignment\init@boxchant
      \let\nxt@tok=
      }
      \init@boxchant
}

\newcommand*\init@boxchant{%
   \process@active\^^M{\let~}\par
   \leavevmode\vtop\bgroup\hsize\linewidth
}
\setlength{\columnseprule}{.5pt}

\makeatother
\raggedbottom
\pagestyle{empty}
\begin{document}
\section{APPRENDS-MOI SEIGNEUR, À ATTENDRE F}

\begin{chant}
   *Apprends-moi, Seigneur, à attendre
   À genoux jusqu'à ce que Tu m'exauces,
   À me défier de ce que font les autres,
   Et à attendre de Toi une réponse en prière.

   \begin{refrain}
      Ceux qui s'attendent au Seigneur, renouvellent leurs forces,
      Ils prendront l'envol comme des aigles,
      Ils courront sans se fatiguer, marcheront sans faiblir,
      Apprends-moi, Seigneur, à attendre.
   \end{refrain}

   *Apprends-moi, Seigneur à patienter,
   Aide-moi à m'humilier, à T'invoquer ;
   Renouvelle ma foi et garde mes yeux sur Toi,
   Aide-moi à être ce que Tu veux que je sois.
\end{chant}

\section{PORTER UNE COURONNE Ab}

\begin{chant}
   *Suis-je bien un soldat de la Croix,
   Disciple de l'Agneau,
   Craindrai-je de soutenir Sa cause,
   De parler de Son Nom ?
   
   \begin{refrain}
      À la fin de la bataille, nous serons couronnés !
      Nous serons couronnés ! Nous serons couronnés !
      À la fin de la bataille, nous serons couronnés,
      Dans la nouvelle Jérusalem.
      Couronnés, couronnés d'une brillante et belle couronne.
      À la fin de la bataille, nous serons couronnés
      Dans la nouvelle Jérusalem.
   \end{refrain}

   *Dois-je être transporté au Ciel
   Sur un beau lit d'aisance,
   Quand d'autres combattent, gagnent le prix,
   Naviguant sur le sang ?

   *N'ai-je pas d'ennemis à combattre,
   Des vagues à surmonter ?
   Ce monde se joint-il à la grâce
   Pour m'amener à Dieu ?

   *Oui, pour régner je dois combattre,
   Redonne courage, Seigneur ;
   Souffrances et peines
   J'endurerai, Aidé par Ta Parole.
\end{chant}
\end{document}
un bon petit
Giga-utilisateur
 
Messages: 706
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Projet recueil des cantiques : environnement refrain

Messagepar Rock » Mercredi 24 Avril 2019, 15:54

Merci beaucoup pour votre promptitude à me répondre et permettez-moi de soumettre deux autres préoccupations :
    Que faire pour avoir une Table des matières personnalisée triée par ordre alphabétique, groupée selon les lettres de l'alphabet, avec possibilité d'utiliser des lettrines à chaque première entrée du groupe ?

Quelque chose du genre :

    --------- A ------------
    Apprend-moi Seigneur, à attendre .......................................... 1
    .
    .
    .
    --------- P ------------
    Porter une couronne .......................................................... 2
Rock
Utilisateur
 
Messages: 3
Inscription: Mercredi 24 Avril 2019, 11:44
Localisation: Lubumbashi, Haut-Katanga, Rép. Dém. du Congo
Statut actuel: Post-bac | Licence

Re: Projet recueil des cantiques : environnement refrain

Messagepar un bon petit » Mercredi 24 Avril 2019, 16:20

Rock a écrit:Qu'elle soit plutôt triée par ordre alphabétique, groupée selon les lettres de l'alphabet, avec possibilité d'utiliser des lettrines,
Que son affichage soit "étiquette de section" ................ "numéro de section"


Une table des matières par ordre alphabétique, c'est plutôt un index, non ?
Tournez-vous vers texindy pour ce genre de choses...
un bon petit
Giga-utilisateur
 
Messages: 706
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Projet recueil des cantiques : environnement refrain

Messagepar Rock » Mercredi 24 Avril 2019, 19:52

un bon petit a écrit:
Rock a écrit:Qu'elle soit plutôt triée par ordre alphabétique, groupée selon les lettres de l'alphabet, avec possibilité d'utiliser des lettrines,
Que son affichage soit "étiquette de section" ................ "numéro de section"


Une table des matières par ordre alphabétique, c'est plutôt un index, non ?
Tournez-vous vers texindy pour ce genre de choses...


Je vais m'y mettre bien que je ne connais pas grand chose à texindy. En cas de besoin je vais revenir. Et merci encore pour tout.
Rock
Utilisateur
 
Messages: 3
Inscription: Mercredi 24 Avril 2019, 11:44
Localisation: Lubumbashi, Haut-Katanga, Rép. Dém. du Congo
Statut actuel: Post-bac | Licence


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Proximic [Spider] et 35 invités