IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Figure dans une tcolorbox

  1. #1
    Membre confirmé
    Avatar de lejimi
    Homme Profil pro
    Écrivain public
    Inscrit en
    Mai 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Écrivain public
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2004
    Messages : 182
    Points : 483
    Points
    483
    Billets dans le blog
    2
    Par défaut Figure dans une tcolorbox
    Bonjour,

    je suis en train de mettre au point une tcolorbox personnalisée pour introduire des encadrés "astuce" dans un tutoriel. Le package est assez simple à utiliser et jusqu'ici tout va bien, sauf si un environnement "figure" se trouve inclus dans ma boîte "tip". J'obtiens alors cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Not in outer par mode. \begin{figure}[h]
    Quelqu'un peut-il m'expliquer ce qui se passe et m'aider à contourner le problème ?

    Question subsidiaire : la partie gauche (lower) de ma boîte contiendra toujours une seule et même chose, l'icône "tip". Est-ce qu'il y a moyen d'automatiser le \tcblower que je suis pour l'instant obligé d'utiliser pour introduire les texe de l'astuce proprement dit ?

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    % Essais tcolorbox
    \documentclass{book}
     
    \usepackage[most]{tcolorbox}
    \usepackage{lipsum}
    \usepackage{graphicx}
     
    \definecolor{tipcol}{cmyk}{0, 0.1, 0.5,0}
     
    \newtcolorbox{tip}{
    title=\Large{Astuce},
    fonttitle=\bfseries,
    width=.8\linewidth,
    toptitle=2ex,
    bottomtitle=2ex,
    arc=4mm,
    colback=tipcol!10!white,
    colframe=black!70!white,
    sidebyside,
    lower separated=false,
    lefthand ratio=0.1,
    before upper={\begin{center}\includegraphics[width=1cm]{images/tip.png}\end{center}},
    before lower={\setlength{\parindent}{3ex}}
    }
     
     
    \begin{document}
     
     \begin{tip}
      \tcblower
      \lipsum[1]
     
      \begin{center}
       \begin{figure}[h]
        \includegraphics[width=4cm]{images/tip.png}
     
        \small{ici une légende}
       \end{figure}
      \end{center}
     
      \lipsum[2]
     
     \end{tip}
     
    \end{document}
    Gloire à qui n'ayant pas d'idéal sacro-saint
    Se borne à ne pas trop emmerder ses voisins.


    Mon tutoriel pour débuter avec Inkscape
    D'autres tutoriels intéressants dans la rubrique Open Source
    Et n'oubliez pas la FAQ Open Source !

  2. #2
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Bonjour,

    L'environnement figure est flottant. Essayer de faire flotter à l'intérieur d'une boite ne sert à rien.

    Pour la question subsidiaire, je ne m'y pencherai que ce soir
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  3. #3
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Bonjour,

    J'avais un peu de temps, donc voici une proposition qui devrait répondre à votre demande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    % Essais tcolorbox
    \documentclass{book}
     
    \usepackage[most]{tcolorbox}
    \usepackage{lipsum}
    \usepackage{graphicx}
     
    \definecolor{tipcol}{cmyk}{0, 0.1, 0.5,0}
     
    \newtcolorbox{tip}{title=\Large{Astuce}, fonttitle=\bfseries, width=.8\linewidth, toptitle=2ex, bottomtitle=2ex, arc=4mm, colback=tipcol!10!white, colframe=black!70!white, sidebyside, lower separated=false, lefthand ratio=0.1, before  upper={\begin{center}\includegraphics[width=1cm]{dragon.png}\end{center}}, before lower={\setlength{\parindent}{3ex}}}
     
    \newenvironment{tip2}{\begin{tip}\tcblower}{\end{tip}}
     
    \begin{document}
     
    \begin{tip}
    \tcblower
    \lipsum[1]
     
    \begin{center}
    \includegraphics[width=4cm]{dragon.png}
     
    \small{ici une légende}
    \end{center}
     
    \lipsum[2]
    \end{tip}
     
    \begin{tip2}
    \lipsum[1]
     
    \begin{center}
    	\includegraphics[width=4cm]{dragon.png}
     
    	\small{ici une légende}
    \end{center}
     
    \lipsum[2]
     
    \end{tip2}
     
    \end{document}
    Inclure \tcblower dans les paramètres before et after ne fonctionne pas.
    La solution est de créer un second environnement (appelé ici tip2) qui ne fait rien d'autre qu'appeler l'environnement tip précédemment défini en incluant \tcblower dans la définition de début de l'environnement.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  4. #4
    Membre confirmé
    Avatar de lejimi
    Homme Profil pro
    Écrivain public
    Inscrit en
    Mai 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Écrivain public
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2004
    Messages : 182
    Points : 483
    Points
    483
    Billets dans le blog
    2
    Par défaut
    Comme un c… je m'étais amusé à mettre toutes mes images dans des 'figures', puis j'ai passé des plombes à essayer de les empêcher de flotter à grand coup de [H].

    Pour l'automatisation de \tcblower, créer un environnement 'autour' de ma tcolorbox marche au petit poil. Ça m'a également permis d'ajouter un petit vspace pour donner de l'air et de centrer le tout. Je mets mon code : les critiques sont les bienvenues, et si ça intéresse quelqu'un c'est cadeau !

    Merci Winnt pour ton aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%% Définition de divers environnements personnalisés %%%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
     
     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%
    % Légendes personnalisées %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%
    \newcommand{\legende}[1]{
    \footnotesize{\textit{#1}}
    }
     
    %%%%%%%%%%%%%%%%%%%%%%
    % Couleurs variables %
    %%%%%%%%%%%%%%%%%%%%%%
    \definecolor{tipcol}{cmyk}{0, 0.1, 0.5,0}
    \definecolor{importantcol}{cmyk}{0, 0.4, 0.67,0}
    \definecolor{detailcol}{cmyk}{0.23, 0.29, 0.13,0}
     
    %%%%%%%%%%%%%%%%%%%%%
    % Encadré «astuces» %
    %%%%%%%%%%%%%%%%%%%%%
    \newtcolorbox{tipbox}{
    enhanced,
    title={Astuce},
    fonttitle=\bfseries,
    width=.9\linewidth,
    toptitle=1ex,
    bottomtitle=1ex,
    arc=4mm,
    colback=tipcol!10!white,
    colframe=tipcol!100!white,
    sidebyside,
    lower separated=false,
    lefthand ratio=0.1,
    before upper={\begin{center}\includegraphics[width=1cm]{images/tip.png}\end{center}},
    before lower={\setlength{\parindent}{3ex}},
    watermark graphics=images/logo_inkscape.png,
    watermark opacity=0.1,
    clip watermark=false
    }
     
    \newenvironment{tip}{
    \vspace{1ex}
    \begin{center}
    \begin{tipbox}
    \tcblower
    \scriptsize
    }{
    \end{tipbox}
    \end{center}
    }
     
     
    %%%%%%%%%%%%%%%%%%%%%%%
    % Encadré «Important» %
    %%%%%%%%%%%%%%%%%%%%%%%
    \newtcolorbox{impbox}{
    enhanced,
    title={Important},
    fonttitle=\bfseries,
    width=.9\linewidth,
    toptitle=1ex,
    bottomtitle=1ex,
    arc=4mm,
    colback=importantcol!10!white,
    colframe=importantcol!100!white,
    sidebyside,
    lower separated=false,
    lefthand ratio=0.1,
    before upper={\begin{center}\includegraphics[width=1cm]{images/important.png}\end{center}},
    before lower={\setlength{\parindent}{3ex}},
    watermark graphics=images/logo_inkscape.png,
    watermark opacity=0.1,
    clip watermark=false
    }
     
    \newenvironment{important}{
    \vspace{1ex}
    \begin{center}
    \begin{impbox}
    \tcblower
    \scriptsize
    }{
    \end{impbox}
    \end{center}
    }
     
     
    %%%%%%%%%%%%%%%%%%%%%
    % Encadré «détails» %
    %%%%%%%%%%%%%%%%%%%%%
    \newtcolorbox{detailbox}{
    enhanced,
    title={Bon à savoir},
    fonttitle=\bfseries,
    width=.9\linewidth,
    toptitle=1ex,
    bottomtitle=1ex,
    arc=4mm,
    colback=detailcol!10!white,
    colframe=detailcol!100!white,
    sidebyside,
    lower separated=false,
    lefthand ratio=0.1,
    before upper={\begin{center}\includegraphics[width=1cm]{images/detail.png}\end{center}},
    before lower={\setlength{\parindent}{3ex}},
    watermark graphics=images/logo_inkscape.png,
    watermark opacity=0.1,
    clip watermark=false
    }
     
    \newenvironment{detail}{
    \vspace{1ex}
    \begin{center}
    \begin{detailbox}
    \tcblower
    \scriptsize
    }{
    \end{detailbox}
    \end{center}
    }
    Gloire à qui n'ayant pas d'idéal sacro-saint
    Se borne à ne pas trop emmerder ses voisins.


    Mon tutoriel pour débuter avec Inkscape
    D'autres tutoriels intéressants dans la rubrique Open Source
    Et n'oubliez pas la FAQ Open Source !

  5. #5
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Bonjour,

    Citation Envoyé par lejimi
    Ça m'a également permis d'ajouter un petit vspace pour donner de l'air et de centrer le tout
    Je modifierai plutôt l'environnement d'origine comme ceci :
    Commandes before et after dont le code est exécuté respectivement avant et après la boîte (je l'utilise justement pour assurer une espacement vertical minimum avant et après mes boites).
    Pour le \scriptsize il suffit de l'insérer dans before lower.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \newtcolorbox{tip}{title=\Large{Astuce}, fonttitle=\bfseries, width=.8\linewidth, toptitle=2ex, bottomtitle=2ex, arc=4mm, colback=tipcol!10!white, colframe=black!70!white, sidebyside, lower separated=false, lefthand ratio=0.1, before  upper={\begin{center}\includegraphics[width=1cm]{dragon.png}\end{center}}, before lower={\setlength{\parindent}{3ex}\scriptsize}, before={\vspace{1ex}\begin{center}}, after={\end{center}} }
    L'avantage de procéder ainsi est que si l'on souhaite dériver cette boîte (modifier l'image ou la couleur de fond par exemple) tout est au même endroit.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  6. #6
    Membre confirmé
    Avatar de lejimi
    Homme Profil pro
    Écrivain public
    Inscrit en
    Mai 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Écrivain public
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2004
    Messages : 182
    Points : 483
    Points
    483
    Billets dans le blog
    2
    Par défaut
    En fait, j'ai fait trois boîtes sur ce modèle : tip, detail et important. Un LaTeXiste expérimenté n'en aurait sans doute créé qu'une avec le titre, la couleur et l'icône réglable via des options. Mais je débute et j'ai préféré faire deux copier-coller et changer "à la main" les trois lignes concernées. Je m'y pencherai sans doute plus tard, mais pour le moment, je trouve la syntaxe de LaTeX franchement déroutante. Passer mes trois options à tip qui les passera ensuite à ma tipbox ? Pas l'ombre d'une idée de comment faire ça ! Mais ça va venir !
    Gloire à qui n'ayant pas d'idéal sacro-saint
    Se borne à ne pas trop emmerder ses voisins.


    Mon tutoriel pour débuter avec Inkscape
    D'autres tutoriels intéressants dans la rubrique Open Source
    Et n'oubliez pas la FAQ Open Source !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/02/2011, 17h04
  2. [XL-2000] Ajout d'une plage de cellule verticalement selon nombre figurant dans une cellule
    Par brumarj dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/06/2010, 17h30
  3. [Débutant] plusieurs figures dans une seulle
    Par cocanouar dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/04/2009, 10h48
  4. Tracage de figures dans une gtk_drawing_area
    Par Fibus dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 15/11/2007, 15h45
  5. "Fusion" de figure dans une interface graphique
    Par pouette13 dans le forum Interfaces Graphiques
    Réponses: 16
    Dernier message: 11/07/2007, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo