Page 1 sur 1

[Résolu] Largeur automatique d'une minipage

MessagePosté: Dimanche 05 Décembre 2010, 16:48
par Thibault
Bonjour,

Une petite question que je me pose.

Peut-on relever la largeur restant sur une ligne en cours (largeur entre le curseur et la fin de ligne).
L'idée est de faire une minipage de largeur l'espace restant sur la ligne (je ne sais pas si je suis très clair).

Merci d'avance.

Re: largeur automatique d'une minipage

MessagePosté: Dimanche 05 Décembre 2010, 17:29
par evariste_G
Bonjour.
Afin d'y voir plus clair, il serait peut-être judicieux de nous exposer ce que tu souhaites faire au final car faire une minipage sur le restant s'espace qu'il y a sur une ligne, je n'en vois pas l'intérêt ...

Re: largeur automatique d'une minipage

MessagePosté: Dimanche 05 Décembre 2010, 18:22
par Thibault
evariste_G a écrit:Bonjour.
Afin d'y voir plus clair, il serait peut-être judicieux de nous exposer ce que tu souhaites faire au final car faire une minipage sur le restant s'espace qu'il y a sur une ligne, je n'en vois pas l'intérêt ...


Alors l'idée est d'écrire dans un cours une remarque mais j'aimerais, lorsque la remarque fait plusieurs lignes que cela soit aligné verticalement sur la fin du mot remarque. Je vais essayer de montrer cela :
Code: Tout sélectionner
Remarque : Ici je commence mon baratin ....
           et à la ligne ça continue ici...


D'où l'idée de faire un truc du genre :
Code: Tout sélectionner
Remarque :
\begin{minipage}[t]{Taille ?}
Ici je commence mon baratin ...

et à la ligne ça continue ici...
\end{minipage}


Est-ce plus clair ? :?

Merci d'avance

Re: largeur automatique d'une minipage

MessagePosté: Dimanche 05 Décembre 2010, 18:32
par gilles
Bonjour,
je te transmets un code qui m'a été donné ici-même l'année dernière :
Code: Tout sélectionner
\newcommand\remarque[1]{%   
   \noindent\textbf{Remarque :\kern0.25em}
   \begin{minipage}[t]{\linewidth-\widthof{\textbf{Remarque :\kern0.25em}}}
   #1%
   \end{minipage}}


qui fera exactement ce que tu veux.
La réponse à ta question sur la largeur de la minipage sur l'espace restant est la soustraction \linewidth - \widthof{blabla}
(là, ça va bien parce que c'est toujours la même chose qu'il y a écrit avant, pour faire quelque chose de plus dynamique, je n'en sais rien)


Je te mets aussi la même chose avec un filet sur la gauche, moi j'aime bien :
Code: Tout sélectionner
\newcommand\remarque[1]{
   \noindent\textbf{Application :\kern0.25em}\vrule\kern0.25em
   \begin{minipage}[t]{\linewidth-\widthof{\textbf{Remarque :\kern0.25em}\vrule\kern0.25em}}
   #1%
   \end{minipage}}


Gilles


Edit :
- il faut charger le package calc !
- ce code m'avait été donné ici par un bon petit

Re: largeur automatique d'une minipage

MessagePosté: Dimanche 05 Décembre 2010, 18:59
par un bon petit
Message et solution inappropriés. À supprimer. Merci

Re: Largeur automatique d'une minipage

MessagePosté: Dimanche 05 Décembre 2010, 19:07
par un bon petit
Message et solution inappropriés. À supprimer. Merci

Re: Largeur automatique d'une minipage

MessagePosté: Dimanche 05 Décembre 2010, 19:35
par pg
On peut aussi utiliser des listes. Cela autorise les coupures de pages à l'intérieur de la remarque tout en permettant d'utiliser {itemize} et {enumerate} à l'intérieur de la remarque (ce que ne permet pas \hangindent) ; l'espacement avant/après la remarque est également automatiquement géré :

Code: Tout sélectionner
\documentclass{article}

\newlength{\negindentlabelwidth}
\newenvironment{negindent}[1]%
  {\begin{list}{}{\settowidth{\negindentlabelwidth}%
                             {\hskip\labelsep\bfseries#1}%
                  \leftmargin=\negindentlabelwidth
                  \labelwidth=0cm
                  \parsep=0pt
                  \itemindent=0cm
                  \listparindent=\parindent % mettre à zéro pour éviter l'indentation des paragraphes dans la remarque
                  \def\makelabel##1{\hskip-\itemindent\llap{##1}}%
                 }%
   \item[\bfseries#1]}
  {\end{list}}

\begin{document}

Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

\begin{negindent}{Remarque :}
Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
\end{negindent}

Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

\end{document}

Pour supprimer l'indentation des paragraphes dans la remarque, changer la ligne " \listparindent=\parindent" en "\listparindent=0cm".

Re: Largeur automatique d'une minipage

MessagePosté: Dimanche 05 Décembre 2010, 19:42
par un bon petit
Voilà. Il suffisait d'attendre pg.

Re: [Résolu] Largeur automatique d'une minipage

MessagePosté: Dimanche 05 Décembre 2010, 22:32
par Thibault
Bravo pour la réactivité !!

Un grand merci à tous ceux qui ont apporté des solutions, même si je ne comprends pas toutes les commandes, c'est toujours sympa de faire les test et on apprend toujours.

Pour ma part, je vais utiliser la méthode de pg et en plus je comprends presque toutes les commandes :wink:

Encore merci à tous

Thibault