5
1

Pour les besoins d'un gros manuscrit, j'utilise de nombreux encadrés pour citer des extraits de documents. Et une façon d'automatiser tout cela a été de profiter de la puissance de tcolorbox qui possède quelques avantages et souplesse.

Or, il arrive que dans la même boîte, je dois utiliser deux sources et donc deux titres. Ce n'est pas le plus compliqué avec la commande tcbsubtitle si ce n'est que je n'arrive pas à lui donner un format similaire à l'autre titre. J'ai parcouru plusieurs fois la documentation touffue du paquet mais je dois avouer mes limites (et peut-être qu'il existe d'autres solutions).

Pour des questions pratiques, esthétiques et en partie scientifiques, la boîte du titre est décalée dans la marge. Pour simplifier les explications, voici un ECM :

Ouvrir dans l'éditeur Overleaf
\documentclass[12pt,french]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper]{geometry}
\usepackage{microtype}
\usepackage{graphicx}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\usepackage{xspace}
\xspaceremoveexception{-}
%\usepackage{varioref}
\usepackage[autostyle]{csquotes}
\usepackage{babel}
\usepackage[osf]{garamondx}
\usepackage[breaklinks,colorlinks=true]{hyperref}
%opening

\newenvironment{supercadre}[2]{
    \begin{tcolorbox}[enhanced,breakable,
        size=fbox,sharp corners=northwest,
        %before=\smallskip
        %after=\smallskip
        %   boxrule=5pt,
        parbox=true,
        adjusted title={\footnotesize{{#1} \no{#2}}},
        colframe=black,colback=black!01!white,  %couleur du cadre et du fond de la boît
        colbacktitle=black!10!white,            %couleur du fond du titre
        coltitle=black!50!black,                %couleur de la police du titre
        fonttitle=\bfseries,                    %font du titre
        subtitle style={colback=black!10!white},
        attach boxed title to top left={xshift=-\tcboxedtitlewidth,yshift=-\tcboxedtitleheight},
        boxed title style={size=fbox,sharp corners=east}
        ]}
    {\end{tcolorbox}}

\newcommand{\cadrebis}[3]{\begin{supercadre}{#1}{#2}\noindent{\small#3}\end{supercadre}}

\begin{document}

\cadrebis{Essai}{1}{
    \lipsum[2]
    \tcbline
    \lipsum[1]
}

\cadrebis{Essai}{2}{
    \lipsum[2]
    \tcbsubtitle[nobeforeafter,subtitle style={colbacktitle=white, attach boxed title to top left={xshift=-\tcboxedtitlewidth,yshift=-\tcboxedtitleheight}}]{Sous-titre qui ne se déplace pas vraiment}
    \lipsum[2]
}

\end{document}

Posée 07 Nov '18, 19:08

tignous's gravatar image

tignous
207513
Taux d'acceptation : 33%

Modifiée 08 Nov '18, 11:19

Pathe's gravatar image

Pathe ♦♦
7.4k28196245

@tignous Pour insérer du ⟨code⟩, il est préférable de ne pas recourir aux balises HTML pre ou code mais de procéder comme indiqué dans la FAQ Comment mettre en forme ma contribution ?.

(07 Nov '18, 20:04) denis ♦♦ denis's gravatar image

J'ai l'impression que les sous-titres ne disposent actuellement pas de la même souplesse que les titres. Il est toujours possible de contacter Thomas F. Sturm, l'auteur de tcolorbox pour lui poser la question/demander cette fonctionnalité.

(07 Nov '18, 20:13) denis ♦♦ denis's gravatar image

Dommage, effectivement. A priori, je pensais qu'il était comme une boîte indépendante. Je vais essayer de passer via le Stack exchange vu qu'il semble y avoir un compte. J'ai essayé de voir la possibilité de coller deux boîtes côte à côte mais mes bricolages sont guère satisfaisants.

(07 Nov '18, 21:43) tignous tignous's gravatar image
1

En fait, le sous-titre est dans une boîte indépendante, donc ce n'est pas très difficile de tricher tcolorbox. Je vais essayer de faire ce que je peux faire.

(08 Nov '18, 01:55) touhami touhami's gravatar image

Je croise les doigts et j'ai posé une question (que j'espère similaire) sur le stackexchange au cas où.

(08 Nov '18, 02:34) tignous tignous's gravatar image

L'environnement tbcraster définie par la bibliothèque du même nom est utilisé pour aligner plusieurs boites tcolorbox de manière régulière. Pour le cas de la question, il me semble que l'environnement tcbitemize (cas particulier de raster) est plus adapté. Voici alors une solution basée sur cet environnement :

Ouvrir dans l'éditeur Overleaf
\documentclass[12pt,french]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[a4paper]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{babel}

\newenvironment{supercadre}[2]{%
\tcbitemize[raster columns=1,
        raster row skip=-2pt,
        enhanced,breakable,
        size=fbox,sharp corners=northwest,
        parbox=true,
        colframe=black,colback=black!01!white,  
        colbacktitle=black!10!white,            
        coltitle=black!50!black,                
        fonttitle=\bfseries,                    
        attach boxed title to top left={xshift=-\tcboxedtitlewidth,yshift=-\tcboxedtitleheight},
        boxed title style={size=fbox,sharp corners=east}]
        \tcbitem[adjusted title=\footnotesize#1 \no#2]}%
        {\endtcbitemize}

\usepackage{lipsum}
\begin{document}
\begin{supercadre}{Essai}{1}
\lipsum[1]        
\tcbitem 
\lipsum[2]
\end{supercadre}
\begin{supercadre}{Essai}{2}
\lipsum[2]        
\tcbitem[adjusted title=\footnotesize Sous-titre] 
\lipsum[1]
\tcbitem[adjusted title=\footnotesize Encore sous-titre] 
\lipsum[1]
\end{supercadre}
\end{document}
Lien permanent

Publiée 08 Nov '18, 23:48

touhami's gravatar image

touhami
9.7k410
Taux d'acceptation : 51%

C'est farpait... et définitivement, je n'avais pas compris tous les usages des rasters (en plus de l'agencement).

(09 Nov '18, 17:32) tignous tignous's gravatar image

Voici une réponse via le stackexchange (solution partielle) qui utilise une option que je connaissais pas, segmentation associée à la commande tcblower. Si le résultat est entièrement satisfaisant, il ne fonctionne que pour une seule division.

Ouvrir dans l'éditeur Overleaf
\documentclass[12pt,french]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper]{geometry}
%\usepackage{microtype}
%\usepackage{graphicx}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
%\usepackage{xspace}
%\xspaceremoveexception{-}
%\usepackage{varioref}
%\usepackage[autostyle]{csquotes}
\usepackage{babel}
%\usepackage[osf]{garamondx}
\usepackage[breaklinks,colorlinks=true]{hyperref}
%opening

\newtcolorbox{supercadre}[3][]{%
    enhanced,breakable,
   size=fbox,sharp corners=northwest,
   before=\smallskip,
   after=\smallskip,
%  boxrule=5pt,
   parbox=true,
   adjusted title={\footnotesize{{#2} \no{#3}}},
   colframe=black,colback=black!01!white,  %couleur du cadre et du fond de la boît
   colbacktitle=black!10!white,            %couleur du fond du titre
   coltitle=black!50!black,                %couleur de la police du titre
   fonttitle=\bfseries,                    %font du titre
   fontupper=\small,
   fontlower=\small,
   subtitle style={colback=black!10!white},
   attach boxed title to top left={xshift=-\tcboxedtitlewidth,yshift=-\tcboxedtitleheight},
   boxed title style={size=fbox,sharp corners=east},
   #1
}

\newtcbox{\subtitle}{size=fbox, sharp corners=east, colback=black!10!white, fontupper=\bfseries, colframe=black}

\tcbset{subtitle/.style={overlay={\node[anchor=north east, inner sep=0pt] at (segmentation.west) {\subtitle{#1}};}}}
\newcommand{\cadrebis}[3]{\begin{supercadre}{#1}{#2}#3\end{supercadre}}

\begin{document}

\begin{supercadre}[subtitle=SubTitle]{Try}{1}
\lipsum[2]
\tcblower
\lipsum[1]
\end{supercadre}

\begin{supercadre}[subtitle=Test]{Try}{1}
\lipsum[2]
\tcblower
\lipsum[1]
\end{supercadre}

\end{document}

Je vais voir s'il est possible de bricoler à partir de là et si jamais cela donne d'autres idées...

Lien permanent

Publiée 08 Nov '18, 19:17

tignous's gravatar image

tignous
207513
Taux d'acceptation : 33%

Modifiée 08 Nov '18, 19:18

1

Si vous voulez, je peux vous proposer une autre solution basée sur la bibliothèque raster de l'extension tcolorbox.

(08 Nov '18, 21:18) touhami touhami's gravatar image

Après quelques essais peu fructueux, je suis effectivement preneur !

(08 Nov '18, 22:29) tignous tignous's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.