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/ ... t-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}
Merci d'avance pour votre aide.