Pour faire suite à un autre post qui n'aura pas eu de succès, j'ai cherché un autre moyen de réaliser un environnement acceptant les listings avec tcolorbox + une image.
Malheureusement je bute sur un truc...
Comment faire comprendre à mon environnement qu'il n'y a pas d'image éventuellement ?
J'ai essayé avec IfNoValue mais ça ne fonctionne pas...
Je joins un ecm et l'image (n'importe quelle image peut convenir cependant).
Merci.
Code : Tout sélectionner
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{tcolorbox}
\tcbuselibrary{listings}
\tcbuselibrary{breakable}
\tcbuselibrary{skins}
\tcbuselibrary{xparse}
\lstdefinestyle{latex}{%
language = [LaTeX]TeX,
basicstyle = {\ttfamily\fontseries{b}\fontsize{10}{12.5}\selectfont},
extendedchars=true,
escapechar = {§},
columns = fullflexible,
keepspaces = true,
tabsize=2,
upquote = true,
breaklines = true,
breakindent = 0cm,
numbers = left,
numbersep = 2.5ex,
numberstyle = {\fontfamily{lmtt}\fontseries{b}\tiny\selectfont},
morecomment = [l]\%,
commentstyle = {\color{gray}},
texcsstyle = *{\color{blue}},
}
\newsavebox\mysavebox
\DeclareTCBListing{listingbis}{ O{} O{} O{} }{%
IfNoValueTF = {#3}{
enhanced,%
overlay = {\begin{tcbclipinterior}%
\fill[orange!12] (frame.south west) rectangle
([xshift=3ex]%largeur du bandeau vertical
frame.north west);
\end{tcbclipinterior}},%
listing options = {#1},
#2}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
comment outside listing,
code = {\sbox{\mysavebox}{\includegraphics{#3}}},
lefthand width = \wd\mysavebox,
image comment = {width=\wd\mysavebox}{#3},
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
enhanced,%
overlay = {\begin{tcbclipinterior}%
\fill[orange!12] (frame.south west) rectangle
([xshift=3ex]%largeur du bandeau vertical
frame.north west);
\end{tcbclipinterior}},%
listing options = {#1},
#2}
}
\begin{document}
\begin{listingbis}[style=latex][colback=red!12][bezier.pdf]
\bfseries
\end{listingbis}
\begin{listingbis}[style=latex][colback=red!12][]
\bfseries
\end{listingbis}
\end{document}