Je souhaite reproduire partiellement un exemple de la documentation de tcolorbox.

Le résultat final (visible en section 24.1 page 461 de la documentation actuelle) ressemble à

une tcolorbox

Je souhaite pouvoir utiliser une \DeclareTotalTCBox avec du contenu verbatim dans une boîte \tcbsidebyside.

D'après le code source de la documentation, l'exemple ci-dessus est obtenu avec :

\begin{dispExample*}{sbs,lefthand ratio=0.6}
\DeclareTotalTCBox{\myverb}{ v }{verbatim,
  colframe=red!75!black,colupper=blue}{#1}

\myverb{\textbf} is a \myverb{\LaTeX} command.
\end{dispExample*}

Les sources se trouvent dans doc\latex\tcolorbox\tcolorbox.doc.xparse.tex.

L'environnement dispExample* est défini dans tex\latex\tcolorbox\tcbdocumentation.code.tex par :

\def\enddispExample{%
  \endtcbwritetemp\endgroup%
  \begin{tcolorbox}%
  \tcb@doc@usetemplisting%
  \tcblower%
  \tcbusetemp%
  \end{tcolorbox}%
}

\newenvironment{dispExample*}[1]{%
  \tcb@layer@pushup\tcbset{docexample,#1}\begingroup\tcbwritetemp%
  }{\enddispExample}

mais je ne comprends pas bien cette définition.

Mes développements personnels définissent la commande \achtung (hello to the german friends here) qui est basée sur une \tcbsidebyside et qui ré-utilise la macro \myverb issue de la documentation.

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

% Affichage de boite pour mettre du contenu en évidence
\newcommand{\achtung}[1]{
    \tcbsidebyside[sidebyside adapt=left,colframe=orange,fonttitle=\bfseries,
        bicolor,colback=white,colbacklower=orange!5!white,top=1mm,bottom=1mm]{%
        {}
    }{%
        #1
    }
}

\DeclareTotalTCBox{\myverb}{ v }{verbatim,colframe=red!75!black,colupper=blue}{#1}

\begin{document}
    \achtung{\lipsum[1] \myverb{blablabla}} % <--- remove the \myverb to make the example work.
\end{document}

Il n'est a priori pas possible normalement d'avoir un argument verbatim dans une macro, pour autant, c'est ce qui semble être le cas dans l'exemple de tcolorbox....

Posée 26 Aoû '21, 15:23

BambOo's gravatar image

BambOo
4313
Taux d'acceptation : 0%

Modifiée 26 Aoû '21, 16:52

Pathe's gravatar image

Pathe ♦♦
7.5k42203251


Comme dispExample*, vous avez besoin d'un environnement au lieu d'une \command:

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

% Affichage de boite pour mettre du contenu en évidence
\newtcolorbox{achtung}{
  sidebyside,
  colframe=orange,
  fonttitle=\bfseries,
  bicolor,
  colback=white,
  colbacklower=orange!5!white,
  top=1mm,
  bottom=1mm
}

\DeclareTotalTCBox{\myverb}{ v }{verbatim,colframe=red!75!black,colupper=blue}{#1}

\begin{document}
    \begin{achtung}
    \lipsum[1] \myverb{blablabla}
    \tcblower
    test
    \end{achtung}
\end{document}

Mais si vous préférez une \command :

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

% Affichage de boite pour mettre du contenu en évidence
\newcommand{\achtung}[1]{
    \tcbsidebyside[sidebyside adapt=left,colframe=orange,fonttitle=\bfseries,
        bicolor,colback=white,colbacklower=orange!5!white,top=1mm,bottom=1mm]{%
        {}
    }{%
        #1
    }
}

\DeclareTotalTCBox{\myverb}{ v }{verbatim,colframe=red!75!black,colupper=blue}{#1}

\begin{document}

\setbox0=\hbox{\myverb{blablabla}}

\achtung{\lipsum[1] \usebox0 } 
\end{document}
Lien permanent

Publiée 26 Aoû '21, 15:40

samcarter's gravatar image

samcarter
8.4k2817
Taux d'acceptation : 56%

Modifiée 26 Aoû '21, 16:11

Que ce soit sur TeX.se ou ici, toujours aussi efficace ! Merci beaucoup !

(26 Aoû '21, 17:03) BambOo BambOo's gravatar image

@BambOo De rien :) Und Hallo aus Deutschland :)

(26 Aoû '21, 17:09) samcarter samcarter'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.