pCloud Premium

[minted] Code dans une ligne de texte

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.
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.

[minted] Code dans une ligne de texte

Messagepar projetmbc » Mardi 21 Juin 2011, 21:33

Bonjour,
le code suivant ne fonctionne pas car il y a un retour à la ligne avant et après le listing.

Code: Tout sélectionner
\documentclass[10pt,a4paper]{article}
% Pour XeLaTeX
   \XeTeXdefaultencoding utf-8
   \usepackage{fontspec}

   \usepackage{minted}

\begin{document}
Je suis \mint{python}!'...dépassé...'! car cela ne marche pas.
\end{document}


Avez-vous le même comportement ?
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: minted-Code dans une ligne de texte

Messagepar OG » Mardi 21 Juin 2011, 22:01

Oui même comportement.
Le créateur a l'air d'être plutôt occupé à faire sa thèse (normal),
tu peux toujours tenté sur le site http://code.google.com/p/minted/updates/list

Mais finalement tu veux avoir du code coloré dans la ligne, n'est-ce-pas un peu
trop demandé ?

O.G.
OG
Modérateur
 
Messages: 2289
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: minted-Code dans une ligne de texte

Messagepar projetmbc » Mardi 21 Juin 2011, 22:16

Bonsoir et merci pour la "google liste".

Non ce n'est pas trop demandé quand on fait un tutoriel de programmation, c'est très pratique.

Je vais envoyer un mail à l'auteur car il manque aussi un autre comportement, sauf si j'ai mal parcouru la doc., à savoir la possibilité d'avoir un retour à la ligne. j'ai dans mes snippets un code ésotérique pour avoir cela avec verbatim.
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar Francky » Mercredi 22 Juin 2011, 18:16

Avec listings, il est trivial de mettre du code dans une ligne.
Quel est l'intérêt de minted ?
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem
Francky
Giga-utilisateur
 
Messages: 683
Inscription: Dimanche 11 Avril 2010, 13:01
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar projetmbc » Mercredi 22 Juin 2011, 18:26

Bonjour,
tu as raison pour listing et j'ai plein d'astuces avec ce package.

minted utilise les capacités de pygments, une librairie Python assez complète, et comme je programme en Python, je pourrais très facilement y ajouter la coloration d'un langage perso. sur lequel je bosse en ce moment.

En parlant de Python, listing ne m'a pas convaincu pour la coloration de ce langage.

De plus, je pense que les petits défauts de minted peuvent être gommés, peut-être même par certains experts de ce forum. J'ai contacté l'auteur de minted pour lui faire part de certains bugs et une suggestion.
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar Francky » Mercredi 22 Juin 2011, 20:42

Tu peux redéfinir le langage avec listing, c'est ce que j'ai fait dans mon tuto.
Tu peux tout refaire à ta guise : mots clefs, mots réservés, ...
commentaires, string, insertion de code latex dans le listing...
localement, tu peux surligner des mots, bref tu peux tout faire.

Que n'as tu pu pas faire avec Python-listing ?
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem
Francky
Giga-utilisateur
 
Messages: 683
Inscription: Dimanche 11 Avril 2010, 13:01
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar projetmbc » Jeudi 23 Juin 2011, 10:13

En fait, j'ai dû faire une bêtise dans mon code LaTeX. As-tu le préambule de ton tuto. ?

Ceci étant écrit, le nombre de langages supportés par Pygments est énorme et assez régulièrement mis à jour.

Deux autres points importants en ce qui me concerne.

  1. Je vais devoir colorer des listings pour des pages Web, et là j'utiliserais Pygments depuis Python.
  2. Avec Pygments, il est possible de programmer une coloration qui tienne compte des fonctions définies dans un listing, ce qui n'est pas négligeable.
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar Francky » Jeudi 23 Juin 2011, 12:06

Voilà quelques trucs adaptés à Python3
Code: Tout sélectionner
%%%%%%%COULEURS%%%%%%
\definecolor{my-gray}{gray}{0.95}
\colorlet{fond-code}{my-gray}
\colorlet{bord-code}{SkyBlue}
\colorlet{comment}{link}
\colorlet{c-emph}{blue}
\colorlet{c-key}{red}
\colorlet{c-math}{OliveGreen}
%%%%%%%%%%%
\lstset{%
basicstyle=\ttfamily, 
       % the size of the fonts that are used for the code
numbers=left,
               % where to put the line-numbers
numberstyle=\footnotesize,
  % the size of the fonts that are used for the line-numbers
stepnumber=1, 
   % the step between two line-numbers. If it's 1 each line
                                % will be numbered
numbersep=5pt,
                 % how far the line-numbers are from the code
backgroundcolor=\color{fond-code},
      % choose the background color. You must add \usepackage{color}
showspaces=false,
               % show spaces adding particular underscores
showstringspaces=false,
        % underline spaces within strings
showtabs=false,   
              % show tabs within strings adding particular underscores
frame=single,    
              % adds a frame around the code
tabsize=4,    
              % sets default tabsize to 4 spaces
captionpos=b,   
              % sets the caption-position to bottom
breaklines=true,
               % sets automatic line breaking
breakatwhitespace=false,   
    % sets if automatic breaks should only happen at whitespace
title=\lstname,   
             % show the filename of files included with \lstinputlisting;
                                % also try caption instead of title
escapeinside={*!}{!*},   
     % if you want to add a comment within your code
%morekeywords={???}            % if you want to add more keywords to the set
framexleftmargin=5mm, frame=shadowbox, rulesepcolor=\color{bord-code},
commentstyle=\color{comment}\small,
emphstyle=\color{c-emph},
keywordstyle=\ttfamily\bfseries\color{c-key},
}% à compléter au besoin
%
% et puis aussi ailleurs
%
\lstset{%
language=python,
keywords=[1]{and,as,assert,break,class,continue,def,%
del,elif,else,except,False,finally,for,%
from,global,if,import,in,is,lambda,%
None,nonlocal,not,or,pass,raise,return,%
True,try,while,with,yield},
%
keywords=[2]{print,input,str,float,int,len,range,abs,%
any,all,set,sum,pow,sorted,list,divmod,enumerate,ord,open,min,max,dir}, % c'est encore incomplet !!!!
keywordstyle=[1]\bfseries\color{red},
keywordstyle=[2]\color{brown},
numbers=none,
escapechar=§,
string=[b]",
%morestring=[b]\textquotesingle,
stringstyle=\color{purple},
moredelim=[is][\ttfamily\color{blue}]{£}{£},% deux trucs perso
moredelim=[is][\ttfamily\color{red}]{≤}{≥}%erreur de python, en rouge
}
\renewcommand*{\lstlistlistingname}{Codes sources des programmes \sujet}
\renewcommand*{\lstlistingname}{Code source}
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem
Francky
Giga-utilisateur
 
Messages: 683
Inscription: Dimanche 11 Avril 2010, 13:01
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar projetmbc » Jeudi 23 Juin 2011, 12:11

Merci, je vais zyeuter cela.
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar Francky » Jeudi 23 Juin 2011, 12:27

Pour une belle mécane avec du gras en option
Code: Tout sélectionner
\RequirePackage[scaled]{beramono}% belle mécane avec bold

Quelques hacks en prime, le dernier est essentiel
Code: Tout sélectionner
\usepackage{listings}
\lstset{extendedchars=true,
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
{§}{{\S}}1 {°}{{\textdegree}}1 {±}{{\textpm}}1 {'}{{\textquotesingle}}1
 }

Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem
Francky
Giga-utilisateur
 
Messages: 683
Inscription: Dimanche 11 Avril 2010, 13:01
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar Francky » Jeudi 23 Juin 2011, 13:34

Rien à voir avec listings :
Pour la mécane (monospaced font), j'ai longtemps hésité entre celle d'origine de kpfonts, inconsolata et d'autres.
Pour l'algorithmique, j'ai choisi beramono, car :
* le gras est possible ; c'est plus zoli dans le tuto ; pas réussi avec inconsolata
* le zéro est pointé (barré chez inconsolata), ça évite les confusions avec O-0
* petit point faible : le g n'est pas aussi beau qu'avec inconsolata. g-9
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem
Francky
Giga-utilisateur
 
Messages: 683
Inscription: Dimanche 11 Avril 2010, 13:01
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar projetmbc » Jeudi 23 Juin 2011, 15:26

C'est quoi cette histoire de mécane...
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar Francky » Jeudi 23 Juin 2011, 15:39

Francky a écrit:Rien à voir avec listings :...

Il y a les fontes sans/avec décorations (sérif), il y a les fontes à chasse fixes (dites aussi mécanes)
(in english : monospaced font)

Pour la programmation, on n'utilise que des fontes mécanes, comme inconsolata, déja-vu mono, beramono...
(dans un autre siècle, on nous obligeait à lire du courrier)

Pour mon tuto Python, tout mon code est en beramono, pour les raisons citées plus haut.
Dans mon éditeur, j'utilise Déjà-vu sans mono pour programmer.
Inconsolata me plait beaucoup aussi.
Attention, la version Latex n'a pas le zéro barré, alors que la version système l'a !
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem
Francky
Giga-utilisateur
 
Messages: 683
Inscription: Dimanche 11 Avril 2010, 13:01
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar projetmbc » Jeudi 23 Juin 2011, 15:48

Merci pour les précisions avec mécane, je ne connaissais pas le terme.
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar pg » Jeudi 23 Juin 2011, 21:09

Une mécane (on dit aussi égyptienne) est plutôt une police avec des empattements rectangulaires. Si on peut considérer que Computer Modern TT, Courier, Luximono, etc. sont bien des mécanes (qui plus est monochasses), Inconsolata, Bera Mono, etc. n'ont pas d'empattements, donc n'entrent pas dans la catégorie.
pg
Modérateur
 
Messages: 2599
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [minted] Code dans une ligne de texte

Messagepar Francky » Jeudi 23 Juin 2011, 21:56

damned, le faux ami.
Je croyais (comme beaucoup ?) que mécane était nommé en rapport aux machines à écrire, donc à chasse fixe.
Erreur. mécane ≠ monochasse.
-- Merci pour la correction.
On doit donc dire monochasse ou à chasse fixe.
J'ai bon cette fois ?
--
Mais d'où vient ce nom trompeur mécane ?
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem
Francky
Giga-utilisateur
 
Messages: 683
Inscription: Dimanche 11 Avril 2010, 13:01
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar pg » Jeudi 23 Juin 2011, 22:37

Il vient de la classification Vox ATypI. Je crois que c'est un néologisme inventé pour l'occasion. En anglais, c'est Mechanistic ou Mechanical.
pg
Modérateur
 
Messages: 2599
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [minted] Code dans une ligne de texte

Messagepar projetmbc » Samedi 25 Juin 2011, 17:35

Bonjour Francky,
à partir de ce que tu m'as proposé, je suis arrivé à ce qui suit. La partie "Back returns for long lines" devrait t'intéresser.

Code: Tout sélectionner
% Listing

% Source : http://forum.mathematex.net/latex-f6/code-dans-une-ligne-de-texte-t13228.html#p127377

\lstset{
%
% Hack for utf-8 like possibilities
   extendedchars = true,
   literate =
%   * A
   {à}{{\`a}}1 {â}{{\^a}}1
   {À}{{\`A}}1 {Â}{{\^A}}1
%   * C
   {ç}{{\c{c}}}1
   {Ç}{{\c{C}}}1
%   * E
   {é}{{\'e}}1 {è}{{\`e}}1 {ê}{{\^e}}1 {ë}{{\"e}}1
   {É}{{\'E}}1 {È}{{\`E}}1 {Ê}{{\^E}}1 {Ë}{{\"E}}1
%   * I
   {î}{{\^i}}1 {ï}{{\"i}}1
   {Î}{{\^I}}1 {Ï}{{\"I}}1
%   * O
   {ô}{{\^o}}1
   {Ô}{{\^O}}1
%   * OE
   {œ}{{\oe}}1
   {Œ}{{\OE}}1
%   * U
   {ù}{{\`u}}1 {û}{{\^u}}1 {ü}{{\"u}}1
   {Ù}{{\`U}}1 {Û}{{\^U}}1 {Ü}{{\"U}}1
%   * Special characters
   {°}{{\textdegree}}1
   {±}{{\textpm}}1,
%
% Escaping character used to allow LaTeX formatting inside one listing.
   escapechar=\⣿,
% You can use a start and an end espcaping character.
%   escapeinside={*!}{!*},
%
% Default style for listings
%
%    * Number for lines
   numbers=left,                % Where to put the line-numbers
   numberstyle=\footnotesize,       % Size of the fonts used for the line-numbers
   stepnumber=1,                % Step between two numbers
   numbersep=5pt,                % How far the line-numbers are from the code
%
%    * Back returns for long lines
   breaklines=true,             % Sets automatic line breaking
   breakatwhitespace=false,       % Automatic breaks only happen at whitespace ?
   breakindent=0pt,            % Space before the text of a break
   postbreak=\mbox{            % Character used at the begining of a break
      \rotatebox[y=0.9ex]{180}{\color{Red} $\Lsh$}%
   },
% You can use a character at the end of line where there is one break.
%   prebreak=\mbox{\tiny$\searrow$},
%
%    * Spacings and tabs
   showspaces=false,             % Spaces are displayed by a kind of underscore
   showstringspaces=false,         % Underline spaces within strings
   showtabs=false,               % Tabs are displayed by a kind of underscore
   tabsize=4,                   % Default tabsize to 4 spaces
%
%   * Text formatting
   basicstyle=\ttfamily,          % Size of the font used
   backgroundcolor=\color{Bisque},   % The background color using the package ''color''
%
%   * Frames and lines
   frame=single,                % Frame around the code ?
   frame=shadowbox,            % Style of frame
%
%   * Title and caption
   captionpos=b,               % Position of the caption
   title=\lstname,               % Show the filename of files included with ''\lstinputlisting''
%
% Style of highlighting
   commentstyle=\color{Green}\small,
   emphstyle=\color{Red},
   keywordstyle=\ttfamily\bfseries\color{Blue},
}

\newcommand{\frameListingInLine}[1]{ %
   \fcolorbox{gray}{yellow}{#1}
}
}
Dernière édition par projetmbc le Samedi 25 Juin 2011, 19:32, édité 1 fois.
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: [minted] Code dans une ligne de texte

Messagepar Francky » Samedi 25 Juin 2011, 19:25

Je connaissais le breakline, et je n'aime toujours pas le braille.
Je préfère un caractère rare qui s'entre au clavier naturellement par tout le monde.
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem
Francky
Giga-utilisateur
 
Messages: 683
Inscription: Dimanche 11 Avril 2010, 13:01
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: Google [Bot], Majestic-12 [Bot], Yandex [Bot] et 4 invités

pCloud Premium