Inclure du code avec coloration dans sa présentation beamer

samedi 8 juin 2019
par  JL
popularité : 6%

Pour répondre à la demande de plusieurs d’entre vous, voici ce que j’utilise pour le code dans LaTeX.

Mon package est listings que j’utilise avec les paramètres suivants pour python (couleurs de idle, package color également nécessaire)

  1. \usepackage{color, listings}
  2.  
  3. \definecolor{orange}{rgb}{1,0.5,0}
  4. \definecolor{gren}{rgb}{0,0.5,0}
  5. \definecolor{lightgren}{rgb}{0,0.7,0}
  6. \definecolor{purple}{rgb}{0.5,0,0.5}
  7. \definecolor{violet}{rgb}{0.8,0,.8}
  8. \definecolor{darkred}{rgb}{0.5,0,0}
  9. \definecolor{lightgrey}{rgb}{.97,.97,.97}
  10. \definecolor{lightblue}{rgb}{0,.7,1}
  11. \definecolor{lightbrown}{rgb}{.6,.5,.5}
  12.  
  13. %%%% Environnement Python %%%%
  14.  
  15. \lstnewenvironment{python}[1][]{
  16. \lstset{
  17.         language=python,
  18.         frameround=tttt,
  19.         %frame=BL
  20.         frame=single,
  21.         framerule=2pt,
  22.         rulecolor=\color{gray!60},
  23.         rulesep=.3pt,
  24.         %color=\color{grey},
  25.         keepspaces=true,
  26.         backgroundcolor=\color{gray!5},
  27.         basicstyle=\ttfamily\small\setstretch{1},
  28.         stringstyle=\color{gren},
  29.         showstringspaces=false,
  30.         alsoletter={1234567890},
  31.         otherkeywords={\ , \}, \{},
  32.         keywordstyle=\color{blue},
  33.         emph={access,and,as,break,class,continue,def,del,elif,else,%
  34.         except,exec,finally,for,from,global,if,import,in,is,%
  35.         lambda,not,or,pass,raise,return,try,while,assert},
  36.         emphstyle=\color{orange!75!black},
  37.         emph={[2]self},
  38.         emphstyle=[2]\color{gray},
  39.         emph={[4]ArithmeticError,AssertionError,AttributeError,BaseException,%
  40.                 DeprecationWarning,EOFError,Ellipsis,EnvironmentError,Exception,%
  41.                 False,FloatingPointError,FutureWarning,GeneratorExit,IOError,%
  42.                 ImportError,ImportWarning,IndentationError,IndexError,KeyError,%
  43.                 KeyboardInterrupt,LookupError,MemoryError,NameError,None,%
  44.                 NotImplemented,NotImplementedError,OSError,OverflowError,%
  45.                 PendingDeprecationWarning,ReferenceError,RuntimeError,RuntimeWarning,%
  46.                 StandardError,StopIteration,SyntaxError,SyntaxWarning,SystemError,%
  47.                 SystemExit,TabError,True,TypeError,UnboundLocalError,UnicodeDecodeError,%
  48.                 UnicodeEncodeError,UnicodeError,UnicodeTranslateError,UnicodeWarning,%
  49.                 UserWarning,ValueError,Warning,ZeroDivisionError,abs,all,any,apply,%
  50.                 basestring,bool,buffer,callable,chr,classmethod,cmp,coerce,compile,%
  51.                 complex,copyright,credits,delattr,dict,dir,divmod,enumerate,eval,%
  52.                 execfile,exit,file,filter,float,frozenset,getattr,globals,hasattr,%
  53.                 hash,help,hex,id,input,int,intern,isinstance,issubclass,iter,len,%
  54.                 license,list,locals,long,map,max,min,object,oct,open,ord,pow,property,print%
  55.                 quit,range,raw_input,reduce,reload,repr,reversed,round,set,setattr,%
  56.                 slice,sorted,staticmethod,str,sum,super,tuple,type,unichr,unicode,%
  57.                 vars,xrange,zip},
  58.         emphstyle=[4]\color{DarkOrchid},
  59.         upquote=true,
  60.         morecomment=[s][\color{gren}]{"""}{"""},
  61.         commentstyle=\color{red}\slshape,
  62.         literate={>>>}{\textbf{\textcolor{darkred}{>{>}>}}}3%
  63.                  {...}{{\textcolor{gray}{...}}}3%
  64.                         {é}{{\'e}}1 %
  65.                         {è}{{\`e}}1 %
  66.                         {ê}{{\^e}}1%
  67.                         {Ê}{{\^E}}1%
  68.                         {à}{{\`a}}1 %
  69.                         {À}{{\`A}}1%
  70.                         {ç}{{\c{c}}}1 %
  71.                         {ù}{{\`u}}1%
  72.                         {î}{{\^i}}1%
  73.                         {ï}{{\" i}}1%
  74.                         {ô}{{\^o}}1%
  75.                         {û}{{\^u}}1,
  76.         inputencoding=latin1,%utf8,
  77.         procnamekeys={def,class},
  78.         procnamestyle=\color{blue},
  79.         breaklines=true,
  80.         breakindent=0pt,
  81.         prebreak=\mbox{$\backslash$},%\tiny$\searrow$},
  82.         postbreak=\mbox{    }%{\color{blue}\tiny$\nwarrow$}}
  83. }}{}

Télécharger

Le code s’insère alors dans un environnement \begin{python}...\end{python}.

De mémoire, il faut utiliser l’option fragile sur les frames pour ne pas avoir de problème (\begin{frame}[fragile])

Vous pouvez aussi regarder du côté de minted.


Commentaires