Indentation $\LaTeX$

Bonjour,

je voudrais un truc un peu pratique pour indenter (le rendu, pas dans l'éditeur !) ce que j'écris, dans $\LaTeX$. En bref, je voudrais une commande du style \indenteParagraphe{} de sorte à ce que le code :
Patati
\indenteParagraphe{
Patata 
\indenteParagraphe{
Blablabla
Bliblibli
Blobloblo
}
}
Truc truc

donne un résultat qui ressemble à ça :
Patati
    Patata
        Blablabla
        Bliblibli
        Blobloblo
Truc truc

Si, en outre, à gauche d'un paragraphe indenté, il pouvait y avoir un crochet ouvrant délimitant le paragraphe, ce serait tip-top. Ca donnerait un peu un truc du style
Patati
  |  Patata
  |   |  Blablabla
  |   |  Bliblibli
  |   |  Blobloblo
Truc truc

Voilà ! Merci pour votre aide !

Réponses

  • À bas prix, l'environnement "quote" fait quelque chose de ce genre.
  • Bonjour,

    J'ai l'impression que ce qu'a proposé Brian ici pourrait être intéressant...
    \documentclass{article}
    \usepackage{tcolorbox}
    \tcbuselibrary{skins, breakable}
    \usepackage{lipsum}                % juste pour le text bidon
    
    \newtcolorbox{remarque}[1][]{
    	blanker, left=1cm, borderline west={0.5mm}{0.6cm}{black!50}, breakable,
    	before skip=2ex plus 0.1ex, after skip=2ex plus 0.1ex, #1
    }
    
    \begin{document}
    Patati
    \begin{remarque}
        Patata
        \begin{remarque}
            Blablabla
    		
            Bliblibli
    		
            Blobloblo
        \end{remarque}
        Truc
    \end{remarque}
    Truc
    \end{document}
    
    112168
  • Ça a l'air drôlement chouette, le truc d'Audeo ! :-D (tu)

    Je n'ai qu'une petite remarque à formuler : le \usepackage{lipsum} peut être omis, puisque la commande \lipsum n'est pas utilisée ici.
  • L'idée de Math Coss est également intéressante, mais il faut se rendre compte que « l'indentation » induite par l'environnement 'quote' se fait des deux côtés (\rightmargin positionné comme \leftmargin).
    \documentclass{article}
    \usepackage{lipsum}                % juste pour le text bidon
    
    \begin{document}
    
    \lipsum[1][1-2]
    \begin{quote}
      \lipsum[2][1-3]
        \begin{quote}
            \lipsum[2][4-5]
        \end{quote}
        Truc
    \end{quote}
    Truc
    \end{document}
    
    Heureusement, pour à peine plus cher, on peut pomper la définition triviale de cet environnement et la modifier pour ne pas toucher à \rightmargin :
    \documentclass{article}
    \usepackage{lipsum}                % juste pour le text bidon
    
    \newenvironment{remarque}{\list{}{}\item\relax}{\endlist}
    
    \begin{document}
    
    \lipsum[1][1-2]
    \begin{remarque}
      \lipsum[2][1-3]
        \begin{remarque}
            \lipsum[2][4-5]
        \end{remarque}
        Truc
    \end{remarque}
    Truc
    \end{document}
    
    J'attache les captures d'écran correspondantes. Elles utilisent les valeurs par défaut de \leftmargin et de \rightmargin, qui sont définies ainsi pour la classe article :
    \if@twocolumn
      \setlength\leftmargini  {2em}
    \else
      \setlength\leftmargini  {2.5em}
    \fi
    \leftmargin  \leftmargini
    
    Autrement dit, c'est 2em en mode 'twocolumn' et 2.5em sinon. À chaque fois qu'on ajoute un niveau d'imbrication de 'list', la marge totale gauche (\@totalleftmargin) augmente de \leftmargin. La commande \list utilise ça avec la primitive TeX \parshape.112180
    112182
  • Effectivement, ça a l'air chouette, le truc d'Audeo !
    Je le pompe tel quel, ça vous va ?
  • Je voudrais édulcorer un peu ce code !

    Je voudrais que la couleur de la barre verticale dépende de sa profondeur (i.e. qu'elle soit d'autant plus claire qu'il y a de barres verticales à sa gauche).

    J'ai tenté ce code-ci :
    \newcounter{depth-remarque}
    \setcounter{depth-remarque}{0}
    
    \newtcolorbox{remarque}[1][]{
        \addtocounter{depth-remarque}{1}
    	blanker, left=0.8cm, borderline west={0.5mm}{0.6cm}{black!100-10*\value{depth-counter}}, breakable,
    	before skip=2ex plus 0.1ex, after skip=2ex plus 0.1ex, #1
    	\addtocounter{depth-remarque}{-1}
    }
    

    mais ça ne marche pas... En fait, qu'est-ce que c'est que ce \newtcolorbox ?

    EDIT : Hahahaha déjà j'ai nommé mon compteur depth-remarque et je l'appelle par depth-counter, c'est sûr que ça va pas marcher xD

    EDIT2 : Le préambule ci-dessous me cause plein d'erreurs :
    \newcounter{depth-remarque}
    \newcounter{color-remarque}
    \setcounter{depth-remarque}{0}
    \setcounter{color-remarque}{0}
    
    \newtcolorbox{remarque}[1][]{
    	blanker, left=0.8cm, borderline west={0.5mm}{0.6cm}{black!\value{color-remarque}}, breakable,
    	before skip=2ex plus 0.1ex, after skip=2ex plus 0.1ex, #1
    }
    
    \newenvironment{remainde}
    {\addtocounter{depth-remarque}{1}
    \setcounter{color-remarque}{100-10*\value{depth-remarque}}
    \begin{remarque}}
    {\end{remarque}
    \addtocounter{depth-remarque}{-1}
    \setcounter{color-remarque}{100-10*\value{depth-remarque}}
    }
    

    EDIT3 :

    Le code suivant me fait plein d'erreurs...
    \usepackage{calc}
    \usepackage{xcolor}
    
    \usepackage{tcolorbox}
    \tcbuselibrary{skins, breakable}
    
    \newtheorem{thm}{Théorème}
    
    \newcounter{depth-remarque}
    \newcounter{color-remarque}
    \setcounter{depth-remarque}{0}
    \setcounter{color-remarque}{0}
    
    \newtcolorbox{remarque}[1][]{
    	blanker, left=0.8cm, borderline west={0.5mm}{0.6cm}{\color{gray}{50}}, breakable,
    	before skip=2ex plus 0.1ex, after skip=2ex plus 0.1ex, #1
    }
    
    \newenvironment{remainde}
    {
    \addtocounter{depth-remarque}{1}
    \setcounter{color-remarque}{100-10*\value{depth-remarque}}
    \begin{remarque}
    }
    {
    \end{remarque}
    \addtocounter{depth-remarque}{-1}
    \setcounter{color-remarque}{100-10*\value{depth-remarque}}
    }
    

    ... mais quand je remplace \color{gray}[50} par black!50, je n'ai plus d'erreur. Alors je ne sais pas...
  • Ca marche enfin !

    Voici le code :
    \usepackage{calc}
    \usepackage{xcolor}
    
    \usepackage{tcolorbox}
    \tcbuselibrary{skins, breakable}
    
    \newcounter{depth-remarque}
    %\newcounter{color-remarque}
    \setcounter{depth-remarque}{0}
    \definecolor{colorremarque}{gray}{0}
    
    \newtcolorbox{remarque}[1][]{
    	blanker, left=0.8cm, borderline west={0.5mm}{0.6cm}{colorremarque}, breakable,
    	before skip=2ex plus 0.1ex, after skip=2ex plus 0.1ex, #1
    }
    
    \newenvironment{remainde}
    {
    \addtocounter{depth-remarque}{1}
    %\setcounter{color-remarque}{100-10*\value{depth-remarque}}
    \definecolor{colorremarque}{gray}{0.\the\numexpr \value{depth-remarque}\relax}
    \begin{remarque}
    }
    {
    \end{remarque}
    \addtocounter{depth-remarque}{-1}
    %\setcounter{color-remarque}{100-10*\value{depth-remarque}}
    \definecolor{colorremarque}{gray}{0.\the\numexpr \value{depth-remarque}\relax}
    }
    

    Voici un exemple obtenu avec le code
    \begin{remainde}
    Bonjour
    \begin{remainde}
    Vous voyez ici que,
    \begin{remainde}
    quand on imbrique différents paragraphes...
    \begin{remainde}
    les barres verticales...
    \begin{remainde}
    changent de couleur !
    \end{remainde}
    C'est plutôt sympa.
    \end{remainde}
    Je trouve qu'on arrive bien à visualiser les niveaux de barres verticales...
    \end{remainde}
    Non ?
    \end{remainde}
    \end{remainde}
    
    112246
  • Noooooon... Il y a un problème... Je crois qu'il y a un problème d'imbrication, parce qu'à un moment, j'ajoute un \begin{remainde} blabla \end{remaine} à un endroit et ça perturbe tout !

    EDIT ; N'importe quoi, c'est juste que j'ai écrit un truc trop long et ça a tout décalé à la page d'après.
  • Bonsoir,

    Je n'ai guère le temps d'en dire plus, mais tu pourrais utiliser \definecolorseries du package xcolor (que tcolorbox charge automatiquement). Tu peux accéder à la composante $n$ d'une color series truc-muche (ici, 'remarque') avec la syntaxe truc-muche!!$[n]$, où $n$ commence à 0.

    Par ailleurs, le niveau d'imbrication d'une boîte tcolorbox est disponible dans le compteur LaTeX tcblayer ; on peut donc l'utiliser directement. Il faudrait cependant gérer le compteur plus manuellement comme tu as fait dans le cas où l'on souhaiterait mettre d'autres tcolorboxes que 'remarque' dans une chaîne de tcolorboxes imbriquées sans que ces « autres tcolorboxes » n'affectent la couleur des 'remarque' à l'intérieur (p. ex., une 'remarque' à l'intérieur d'une tcolorbox quelconque, elle-même à l'intérieur d'une autre 'remarque'). Voir aussi les styles '/tcb/every box on layer $n$' dans le manuel de tcolorbox.
    \documentclass{article}
    \usepackage{tcolorbox}
    \tcbuselibrary{skins, breakable}
    
    \definecolorseries{remarque}{gray}{last}{black!50}{black!10}
    \resetcolorseries[3]{remarque} % 4 niveaux de gris de 'black!50' à 'black!10'.
    
    \newtcolorbox{remarque}[1][]{
    	blanker, breakable, left=1cm,
            borderline west={0.5mm}{0.6cm}
              {{remarque!![\the\numexpr \the\value{tcblayer}-1\relax]}},
    	before skip=2ex plus 0.1ex, after skip=2ex plus 0.1ex, #1,
    }
    
    \begin{document}
    Patati
    \begin{remarque}
        Patata
        \begin{remarque}
            Blablabla
    
            Bliblibli
    
            Blobloblo :
            \begin{remarque}
              Plop !
              \begin{remarque}
                Plouf !
              \end{remarque}
            \end{remarque}
        \end{remarque}
        Truc
    \end{remarque}
    Truc
    \end{document}
    
    112272
Connectez-vous ou Inscrivez-vous pour répondre.