Comment reproduire ce cadre avec la possibilité de mettre un titre dessus. L'exemple vient de la doc de Chemfig (package pour les formules chimiques)

Posée 18 Aoû '19, 17:19

idefix's gravatar image

idefix
95594051
Taux d'acceptation : 14%

Modifiée 20 Aoû '19, 21:50

Pathe's gravatar image

Pathe ♦♦
7.5k43204251

C'est un job pour tcolorbox !

(19 Aoû '19, 19:04) DRI DRI's gravatar image

Une autre solution avec bclogo :

Ouvrir dans l'éditeur Overleaf
\documentclass{article}

\usepackage{xcolor}
\usepackage[tikz]{bclogo}

\renewcommand\bcStyleTitre[1]{\centering
\smash{\raisebox{1em}{\colorbox{black}{\color{white}#1}}}}%

\begin{document}
\begin{bclogo}[barre=none,logo={}]{Titre}
  Texte
\end{bclogo} 
\end{document}

Le code de la doc de Chemfig ce trouve ici http://mirrors.ctan.org/macros/generic/chemfig/chemfig-fr.tex La définition original du cadre :

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fancybox,chemfig}
\parindent=0pt

\makeatletter
\newcommand\make@car@active[1]{%
    \catcode`#1\active
    \begingroup
        \lccode`\~`#1\relax
        \lowercase{\endgroup\def~}%
}

\newif\if@exstar

\newcommand\exemple{%
    \begingroup
    \parskip\z@
    \@makeother\;\@makeother\!\@makeother\?\@makeother\:% neutralise frenchb
    \@ifstar{\@exstartrue\exemple@}{\@exstarfalse\exemple@}}

\newcommand\exemple@[2][65]{%
    \medbreak\noindent
    \begingroup
        \let\do\@makeother\dospecials
        \make@car@active\ { {}}%
        \make@car@active\^^M{\par\leavevmode}%
        \make@car@active\^^I{\space\space}%
        \make@car@active\,{\leavevmode\kern\z@\string,}%
        \make@car@active\-{\leavevmode\kern\z@\string-}%
        \make@car@active\>{\leavevmode\kern\z@\string>}%
        \make@car@active\<{\leavevmode\kern\z@\string<}%
        \exemple@@{#1}{#2}%
}

\newcommand\exemple@@[3]{%
    \def\@tempa##1#3{\exemple@@@{#1}{#2}{##1}}%
    \@tempa
}

\newcommand\exemple@@@[3]{%
    \xdef\the@code{#3}%
    \endgroup
    \if@exstar
        \begingroup
            \fboxrule0.4pt
            \let\breakboxparindent\z@
            \def\bkvz@bottom{\hrule\@height\fboxrule}%
            \let\bkvz@before@breakbox\relax
            \def\bkvz@set@linewidth{\advance\linewidth\dimexpr-2\fboxrule-2\fboxsep}%
            \def\bkvz@left{\vrule\@width\fboxrule\hskip\fboxsep}%
            \def\bkvz@right{\hskip\fboxsep\vrule\@width\fboxrule}%
            \def\bkvz@top{\hbox to \hsize{%
                \vrule\@width\fboxrule\@height\fboxrule
                \leaders\bkvz@bottom\hfill
                \sffamily
                \fboxsep\z@
                \colorbox{black}{\kern0.25em\color{white}\footnotesize\lower0.5ex\hbox{\strut#2}\kern0.25em}%
                \leaders\bkvz@bottom\hfill
                \vrule\@width\fboxrule\@height\fboxrule}}%
            \breakbox
                \kern.5ex\relax
                \ttfamily\footnotesize\the@code\par
                \normalfont
                \kern3pt
                \hrule height0.1pt width\linewidth depth0.1pt
                \vskip5pt
                \rightskip0pt plus 1fill
                \everypar{{\color{lightgray}\rlap{\vrule height0.1pt width\linewidth depth0.1pt}}\hskip0pt plus 1fill}%
                \newlinechar`\^^M\everyeof{\noexpand}\scantokens{#3}\par
            \endbreakbox
        \endgroup
    \else
        \vskip0.5ex
        \boxput*(0,1)
            {\fboxsep\z@
            \hbox{\sffamily\colorbox{black}{\leavevmode\kern0.25em{\color{white}\footnotesize\strut#2}\kern0.25em}}%
            }%
            {\fboxsep5pt
            \fbox{%
                $\vcenter{\hsize\dimexpr0.#1\linewidth-\fboxsep-\fboxrule\relax
                    \kern5pt\parskip0pt \ttfamily\footnotesize\the@code}%
                \vcenter{\kern5pt\hsize\dimexpr\linewidth-0.#1\linewidth-\fboxsep-\fboxrule\relax
                    \everypar{{\color{lightgray}\rlap{\vrule height0.1pt width\dimexpr\linewidth-0.#1\linewidth-\fboxsep-\fboxrule depth0.1pt}}}%
                    \footnotesize\newlinechar`\^^M\everyeof{\noexpand}\scantokens{#3}}$%
                }%
            }%
    \fi
    \medbreak
    \endgroup
}

\begin{document}

\exemple{Distance interatome}|\chemfig[atom sep=2em]{A-B}\par
\chemfig[atom sep=50pt]{A-B}|

\end{document}
Lien permanent

Publiée 18 Aoû '19, 22:10

samcarter's gravatar image

samcarter
8.4k2817
Taux d'acceptation : 56%

Modifiée 20 Aoû '19, 21:51

Pathe's gravatar image

Pathe ♦♦
7.5k43204251

1

@samcarter La doc de chemfig suppose \parindent=0pt, sinon il aura de débordement.

AMHA, c'est pour une simple et bonne raison que la commande est appelée \exemple : afficher un code verbatim et le résultat qu'il génère.

(19 Aoû '19, 17:20) touhami touhami's gravatar image

@touhami Merci beaucoup pour votre commentaire ! J'ai ajouté \parindent=0pt

(19 Aoû '19, 17:28) samcarter samcarter's gravatar image

Voici une solution avec tcolorbox :

Ouvrir dans l'éditeur Overleaf
\documentclass[french]{article}             
\usepackage{lmodern}                    
%\usepackage[utf8]{inputenc}                
\usepackage[T1]{fontenc}                            
\usepackage{babel}
%------------------------------------------------
\usepackage[most]{tcolorbox}
%------------------------------------------------
\newtcolorbox{alachemfig}[2][]{
    enhanced,
    size=fbox,sharp corners,
    colback=white,colframe=black,
    colbacktitle=black,fonttitle=\bfseries,
    attach boxed title to top center={yshift=-3mm,yshifttext=-3mm},
    boxed title style={size=small,left=0pt,right=0pt,sharp corners},
    title=#2,
    #1}

\begin{document}

\begin{alachemfig}{Question}
Comment reproduire ce cadre avec la possibilité de mettre un titre dessus. 
L'exemple vient de la doc de Chemfig (package pour les formules chimiques)
\end{alachemfig}
\begin{alachemfig}[colframe=red]{Réponse}
Vous pouvez utiliser l'extension \emph{tcolorbox}. 
Les boites créées avec cet extension sont (facilement) configurables.
\end{alachemfig}
\end{document}
Lien permanent

Publiée 18 Aoû '19, 20:44

touhami's gravatar image

touhami
9.7k410
Taux d'acceptation : 51%

Modifiée 20 Aoû '19, 21:49

Pathe's gravatar image

Pathe ♦♦
7.5k43204251

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.