[Résolu] listings et utf8

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] listings et utf8

Messagepar marco56 » Dimanche 30 Octobre 2016, 14:00

Bonjour,
Je sais que le sujet a déjà été évoqué mais je ne comprends pas pourquoi mon code ne fonctionne pas :

Code: Tout sélectionner
\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage[francais]{babel}
\usepackage [T1]{fontenc}

\usepackage{listingsutf8}
\usepackage{xcolor}

\colorlet{commentcolour}{green!60!black}
\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}{violet}


\newcommand*{\literatecolour}{\textcolor{literatecolour}}


\lstdefinestyle{mypython}{
%\lstset{
%keepspaces=true,
inputencoding=utf8,
language=python,
showtabs=true,
tab=,
tabsize=2,
basicstyle=\ttfamily\footnotesize,
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},
literate=
{é}{{\'e}}{1}%
{è}{{\`e}}{1}%
{à}{{\`a}}{1}%
{ç}{{\c{c}}}{1}%
{œ}{{\oe}}{1}%
{ù}{{\`u}}{1}%
{É}{{\'E}}{1}%
{È}{{\`E}}{1}%
{À}{{\`A}}{1}%
{Ç}{{\c{C}}}{1}%
{Œ}{{\OE}}{1}%
{Ê}{{\^E}}{1}%
{ê}{{\^e}}{1}%
{î}{{\^i}}{1}%
{ô}{{\^o}}{1}%
{û}{{\^u}}{1}%
{:}{{\literatecolour:}}{1}%
{=}{{\literatecolour=}}{1}%
{-}{{\literatecolour-}}{1}%
{+}{{\literatecolour+}}{1}%
{*}{{\literatecolour*}}{1}%
{**}{{\literatecolour{**}}}2%
{/}{{\literatecolour/}}{1}%
{//}{{\literatecolour{//}}}2%
{!}{{\literatecolour!}}{1}%
{[}{{\literatecolour[}}{1}%
{]}{{\literatecolour]}}{1}%
{<}{{\literatecolour<}}{1}%
{>}{{\literatecolour>}}{1}%
{>>>}{\pythonprompt}{3}%
,
breaklines=true
%}
}


\makeatletter
\newsavebox{\lstb@x}
\lstnewenvironment{python_cons}
   {\lstset{style=mypython}\setbox\lstb@x\hbox\bgroup\color@setgroup}
   {\color@endgroup\egroup\fcolorbox{black}{green!20}{\usebox{\lstb@x}}}
\makeatother


\begin{document}
\begin{python_cons}
"a e i"
\end{python_cons}

\begin{python_cons}
"â è ï"
\end{python_cons}

\end{document}


Le dernier listing ne passe pas à cause des accents.
Tout ceci n'est pas dramatique mais j'aimerais bien régler le pb...
J'ai tenté utf8/latin1 mais ce n'est pas satisfaisant.
Dernière édition par marco56 le Lundi 31 Octobre 2016, 09:35, édité 1 fois.
marco56
Giga-utilisateur
 
Messages: 688
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: listings et utf8

Messagepar balf » Dimanche 30 Octobre 2016, 21:34

Ils ne passent pas à cause de ceux qui n'ont pas été déclarés avec literate. Maintenant, pour moi, ça passe :

Code: Tout sélectionner
    \documentclass{article}

    \usepackage[utf8]{inputenc}
    \usepackage{textcomp}
    \usepackage[francais]{babel}
    \usepackage [T1]{fontenc}

    \usepackage{listingsutf8}
    \usepackage{xcolor}

    \colorlet{commentcolour}{green!60!black}
    \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}{violet}


    \newcommand*{\literatecolour}{\textcolor{literatecolour}}


    \lstdefinestyle{mypython}{
    %\lstset{
    %keepspaces=true,
    inputencoding=utf8,
    language=python,
    showtabs=true,
    tab=,
    tabsize=2,
    basicstyle=\ttfamily\footnotesize,
    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},
    literate=
    {é}{{\'e}}{1}%
    {è}{{\`e}}{1}%
    {à}{{\`a}}{1}%
    {â}{{\^a}}{1}%%%
    {ç}{{\c{c}}}{1}%
    {œ}{{\oe}}{1}%
    {ù}{{\`u}}{1}%
    {É}{{\'E}}{1}%
    {È}{{\`E}}{1}%
    {À}{{\`A}}{1}%
    {Ç}{{\c{C}}}{1}%
    {Œ}{{\OE}}{1}%
    {Ê}{{\^E}}{1}%
    {ê}{{\^e}}{1}%
    {î}{{\^i}}{1}%
     {ï}{{\"i}}{1}%%%
    {ô}{{\^o}}{1}%
    {û}{{\^u}}{1}%
    {:}{{\literatecolour:}}{1}%
    {=}{{\literatecolour=}}{1}%
    {-}{{\literatecolour-}}{1}%
    {+}{{\literatecolour+}}{1}%
    {*}{{\literatecolour*}}{1}%
    {**}{{\literatecolour{**}}}2%
    {/}{{\literatecolour/}}{1}%
    {//}{{\literatecolour{//}}}2%
    {!}{{\literatecolour!}}{1}%
    {[}{{\literatecolour[}}{1}%
    {]}{{\literatecolour]}}{1}%
    {<}{{\literatecolour<}}{1}%
    {>}{{\literatecolour>}}{1}%
    {>>>}{\pythonprompt}{3}%
    ,
    breaklines=true
    %}
    }


    \makeatletter
    \newsavebox{\lstb@x}
    \lstnewenvironment{python_cons}
       {\lstset{style=mypython}\setbox\lstb@x\hbox\bgroup\color@setgroup}
       {\color@endgroup\egroup\fcolorbox{black}{green!20}{\usebox{\lstb@x}}}
    \makeatother

    \begin{document}
    \begin{python_cons}
    "a e i"
    \end{python_cons}
    \begin{python_cons}
    "â è ï"
    \end{python_cons}

    \end{document}

B. A.
Fichiers joints
listings-utf8.pdf
(4.63 Kio) Téléchargé 27 fois
balf
Zetta-utilisateur
 
Messages: 3664
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: listings et utf8

Messagepar marco56 » Lundi 31 Octobre 2016, 09:35

merci balf !
Je cherchais plus compliqué.
J'en ai profité pour ajouter d'autres caractères encore oubliés.
marco56
Giga-utilisateur
 
Messages: 688
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Proximic [Spider], Yahoo [Bot] et 23 invités