Code : Tout sélectionner
\documentclass [fleqn,a4paper,openany]{book}
\usepackage[utf8]{inputenc}
\usepackage[a4paper]{geometry}
\geometry{lmargin=3cm,rmargin=3cm,tmargin=2cm,bmargin=1.5cm}
\usepackage{tikz}
\usetikzlibrary{arrows,shadows}
%\input{preambule_21-22/preambule11Pssindexssanim}
\usepackage{listingsutf8}
\usepackage[breakable]{tcolorbox}
\usepackage{xcolor}
\colorlet{stringcolour}{red!80!black}
\colorlet{keywordcolour}{magenta!90!black}
\colorlet{exceptioncolour}{yellow!80!red}
\colorlet{commandcolour}{blue!60!black}
\colorlet{numpycolour}{blue!80!green}
\colorlet{literatecolour}{magenta!90!black}
\colorlet{promptcolour}{red!80!black}
\colorlet{specmethodcolour}{red}
\colorlet{commentcolour}{green!60!black}
\makeatletter
\newsavebox{\lstb@x}
\newlength\largeurboxlisting
\newsavebox{\pythonbox}%
\lstdefinestyle{mypython}{
%\lstset{
%keepspaces=true,
inputencoding=utf8,
language=python,
showtabs=true,
tab=,
tabsize=2,
basicstyle=\ttfamily\footnotesize, %\setstretch{.5},
stringstyle=\color{stringcolour},
showstringspaces=false,
keepspaces=true,
alsoletter={1234567890},
otherkeywords={\%, \}, \{, \&, \|},
morekeywords={as},
keywordstyle=\color{keywordcolour}\bfseries,
emph={and,break,class,continue,def,yield,del,elif ,else,%
except,exec,finally,for,from,global,if,import,in,%
lambda,not,or,pass,print,raise,return,try,while,assert,with},
emphstyle=\color{blue}\bfseries,
emph={[2]True, False, None},
emphstyle=[2]\color{keywordcolour},
emph={[3]object,type,isinstance,copy,deepcopy,zip,enumerate,reversed,list,len,dict,tuple,xrange,append,execfile,real,imag,reduce,str,repr},
emphstyle=[3]\color{commandcolour},
emph={Exception,NameError,IndexError,SyntaxError,TypeError,ValueError,OverflowError,ZeroDivisionError},
emphstyle=\color{exceptioncolour}\bfseries,
morecomment=[s]{"""}{"""},
commentstyle=\color{commentcolour}\slshape,
emph={[4]ode, fsolve, sqrt, exp, sin, cos,arctan, arctan2, arccos, pi, array,
norm, solve, dot, arange, , isscalar, max, sum, flatten, shape, reshape, find,
any, all, abs, plot, show, linspace, legend, quad, polyval,polyfit, hstack,
concatenate,vstack,column_stack,empty,zeros,ones,rand,vander,grid,pcolor,eig,
eigs,eigvals,svd,qr,tan,det,logspace,roll,min,mean,cumsum,cumprod,diff,vectorize
,lstsq,cla,eye,xlabel,ylabel,squeeze},
emphstyle=[4]\color{numpycolour},
emph={[5]__init__,__add__,__mul__,__div__,__sub__,__call__,__getitem__,__setitem__,__eq__,__ne__,__nonzero__,__rmul__,__radd__,__repr__,__str__,__get__,__truediv__,__pow__,__name__,__future__,__all__},
emphstyle=[5]\color{specmethodcolour},
emph={[6]assert,yield},
emphstyle=[6]\color{keywordcolour}\bfseries,
emph={[7]range},
emphstyle={[7]\color{keywordcolour}\bfseries},
escapeinside={<@}{@>},
literate=
{é}{{\'e}}{1}%
{è}{{\`e}}{1}%
{à}{{\`a}}{1}%
{â}{{\^a}}{1}%
{ç}{{\c{c}}}{1}%
{æ}{{\ae}}{1}%
{œ}{{\oe}}{1}%
{ù}{{\`u}}{1}%
{É}{{\'E}}{1}%
{È}{{\`E}}{1}%
{À}{{\`A}}{1}%
{Ç}{{\c{C}}}{1}%
{Æ}{{\AE}}{1}%
{Œ}{{\OE}}{1}%
{Ê}{{\^E}}{1}%
{ê}{{\^e}}{1}%
{î}{{\^i}}{1}%
{ï}{{\"i}}{1}%
{ô}{{\^o}}{1}%
{û}{{\^u}}{1}%
{²}{{$^2$}}1
{³}{{$^3$}}1
{⁴}{{$^4$}}1
{⁵}{{$^5$}}1
{⁶}{{$^6$}}1
{⁷}{{$^7$}}1
{⁸}{{$^8$}}1
{⁹}{{$^9$}}1
,
breaklines=true%
}
\lstnewenvironment{python_cons}[1][5]{%
\begingroup \lrbox{\pythonbox}%
\lstset{style=mypython}}{%
\endlrbox\endgroup
\settowidth{\largeurboxlisting}{\usebox\pythonbox}
\tikz\node[%
drop shadow={shadow xshift=3pt, shadow yshift=-3pt},
rounded corners = 3pt,
line width = 1pt ,
draw = green!80 ,
fill = green!10 ,
inner sep = 4mm,
] {
\begin{minipage}{\dimexpr\largeurboxlisting+#1mm}
\hspace*{#1mm}\usebox\pythonbox
\end{minipage}
};
}
\makeatother
\begin{document}
\begin{python_cons}
from pyfirmata import Arduino
# choix du port de la carte Aduino
carte = Arduino('/dev/ttyACM0')
\end{python_cons}
\begin{itemize}
\item Blabla
\begin{python_cons}
from pyfirmata import Arduino
# choix du port de la carte Aduino
carte = Arduino('/dev/ttyACM0')
\end{python_cons}
\end{itemize}
\end{document}
Un peu long, je peux épurer si besoin encore.