Nous sommes le Lun 23 Juin, 2025 23:59
Supprimer les cookies

[LaTeX] Insérer du code source PHP dans un document LaTeX

Sur le logiciel libre en général ou un logiciel libre en particulier

Jeu 01 Déc, 2005 10:02

Bonjour,
J'aimerais insérer du code source PHP dans un document LaTeX, avec de la coloration syntaxique.

J'ai trouvé pour du C++ mais pour le PHP, j'ai pas trouvé comment faire.
L'url source: http://www.sur-la-toile.com/viewTopic_5723_9_inserer-un-code-source-c++-(en-coul.html

Le code proposé:

Code: Tout sélectionner
\documentclass[a4paper,10pt]{report}

\usepackage[latin1]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{color}
\usepackage{graphicx}
\usepackage{listings}

\definecolor{colKeys}{rgb}{0,0,1}
\definecolor{colIdentifier}{rgb}{0,0,0}
\definecolor{colComments}{rgb}{0,0.5,1}
\definecolor{colString}{rgb}{0.6,0.1,0.1}

\lstset{%configuration de listings
float=hbp,%
basicstyle=\ttfamily\small, %
identifierstyle=\color{colIdentifier}, %
keywordstyle=\color{colKeys}, %
stringstyle=\color{colString}, %
commentstyle=\color{colComments}, %
columns=flexible, %
tabsize=2, %
frame=trBL, %
frameround=tttt, %
extendedchars=true, %
showspaces=false, %
showstringspaces=false, %
numbers=left, %
numberstyle=\tiny, %
breaklines=true, %
breakautoindent=true, %
captionpos=b,%
xrightmargin=-2cm, %
xleftmargin=-2cm
}

\title{C++}
\author{}


\begin{document}
\maketitle

\lstset{language=c++}
\lstset{commentstyle=\textit}
\begin{lstlisting}
#include <iostream.h>

using namespace std;

int main()
{
cout << "Hello World !" << endl;
return 0;
}

\end{lstlisting}
\end{document}


Quelqu'un a-t-il une solution pour le php?

Merci d'avance,
Pons++
++
Ponsfrilus
ponsfrilus

Avatar de l’utilisateur
Messages : 60
Géo : Lausanne, Switzerland

Jeu 01 Déc, 2005 10:31

dans la doc
ftp://ftp.inria.fr/pub/TeX/CTAN/macros/ ... gs-1.3.pdf

il apparait que listing peut mettre en forme du php... à toi de jouer :wink:
steph

Messages : 158
Géo : Lyon

Jeu 01 Déc, 2005 10:57

Re...
Merci, mais j'avoue je suis noob x mille en LaTex (j'ai commencé hier, damn!)

Donc selon la doc en remplacant \lstset{language=c++} par \lstset{language=PHP} le tour et joué... presque:

La pluspart des mot clés sont en bleu, et les textes entre guillements en rouge.

Comment je fait pour que mes variables ($var) soient en vert, et que les déclaration de fonction soient aussi en bleue?

Ci dessous le code pour le php que j'utilise:
Code: Tout sélectionner
\documentclass[a4paper,10pt]{report}

\usepackage[latin1]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{color}
\usepackage{graphicx}
\usepackage{listings}

\definecolor{colKeys}{rgb}{0,0,1}
\definecolor{colIdentifier}{rgb}{0,0,0}
\definecolor{colComments}{rgb}{0,0.5,1}
\definecolor{colString}{rgb}{0.6,0.1,0.1}

\lstset{ %configuration de listings
float=hbp,%
basicstyle=\ttfamily\small, %
identifierstyle=\color{colIdentifier}, %
keywordstyle=\color{colKeys}, %
stringstyle=\color{colString}, %
columns=flexible, %
tabsize=2, %
frame=trBL, %
frameround=tttt, %
extendedchars=true, %
showspaces=false, %
showstringspaces=false, %
numbers=left, %
numberstyle=\tiny, %
breaklines=true, %
breakautoindent=true, %
captionpos=b,%
xrightmargin=-2cm, %
xleftmargin=-2cm %
}

\title{Test coloration syntaxique PHP}
\author{}


\begin{document}
\maketitle

\lstset{language=php}
\lstset{commentstyle=\textit}
\begin{lstlisting}

function listProjectPostings( $type, $sort, $limit, $limitstart ) {
   global $database, $option, $is_editor, $my, $mainframe, $cfgjl, $Itemid;
   $gid = $my->gid;

   $access = !$mainframe->getCfg( 'shownoauth' );

   // Limit the list
   if ( $limit > 0 ) {
      $limitquery = "\nLIMIT $limitstart, $limit";
   }

   // Only show one job type
   $typequery = "";
   if ( $type != "" ) {
      switch ( $type ) {
         case "internships": $typequery = "\n    AND c.jobtype = 2"; break;
         case "normal": $typequery = "\n    AND ( c.jobtype = 0 OR c.jobtype = 1 )"; break;
         default:
            $type = intval( $type );
            $typequery = "\n    AND c.jobtype = '$type'";
      }
   }

   // Check out of we need to show only published items
   $publishedquery = "";
   if ( $cfgjl['publishinglimit'] > 0 ) {
      $ptime = date( "Y-m-d H:i:s", time() - intval( $cfgjl['publishinglimit'] ) * 86400 );
      $publishedquery = "\n   AND c.created >= '$ptime'";
   }

   $ordering = getOrdering( $sort );

   // Read properties from db.
   $database->setQuery( "SELECT * "
      . "\nFROM #__leni_projects AS c"
      . "\nWHERE c.state='1' "
      . ($access ? "\n   AND c.access<='$gid'" : "" )
        . $publishedquery
      . $typequery
      . "\nORDER BY $ordering"
      . "$limitquery"
   );
\end{lstlisting}
\end{document}


Arghhh il devrait pourtant y avoir une solution.... :cry:
++
Ponsfrilus
ponsfrilus

Avatar de l’utilisateur
Messages : 60
Géo : Lausanne, Switzerland

Jeu 01 Déc, 2005 14:02

ponsfrilus a écrit:Re...
Merci, mais j'avoue je suis noob x mille en LaTex (j'ai commencé hier, damn!)

Donc selon la doc en remplacant \lstset{language=c++} par \lstset{language=PHP} le tour et joué... presque:

La pluspart des mot clés sont en bleu, et les textes entre guillements en rouge.

Comment je fait pour que mes variables ($var) soient en vert, et que les déclaration de fonction soient aussi en bleue?

Ci dessous le code pour le php que j'utilise:
Code: Tout sélectionner
\documentclass[a4paper,10pt]{report}

\usepackage[latin1]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{color}
\usepackage{graphicx}
\usepackage{listings}

\definecolor{colKeys}{rgb}{0,0,1}
\definecolor{colIdentifier}{rgb}{0,0,0}
\definecolor{colComments}{rgb}{0,0.5,1}
\definecolor{colString}{rgb}{0.6,0.1,0.1}



=> ici sont définies les couleurs qui seront utilisées par la suite, c'est du RGB (rouge, bleu, vert)
tu peux t'amuser à changer les paramètres entre [0,1] et regarder
rouge = {1,0,0}
bleu = {0,1,0}
vert = {0,0,1}

chaques chaine de caractère suit donc une couleur particuliere
mots clés => colKeys
commentaire => colComments
etc...

Le hic je pense, c'est que cela va mettre de la couleur sur ce qu'il peut detecter... je ne sais pas s'il peut mettre de la couleur sur des classes de chaines commencant par $.

Je ne peux rien faire de plus, je ne peux rien installé ni mettre a jour depuis ici...
steph

Messages : 158
Géo : Lyon

Jeu 01 Déc, 2005 14:12

:D :D :D :D :D

Code: Tout sélectionner
\definecolor{colIdentifier}{rgb}{0,0,0}


Ben rgb 0 0 0 c'est du noir, hum.... :?

Méa coulpa et merci à tous pour vos réponses!!!!
++
Ponsfrilus
ponsfrilus

Avatar de l’utilisateur
Messages : 60
Géo : Lausanne, Switzerland

Mer 15 Fév, 2012 08:11

Tu peux utiliser le packages Minted qui colore beaucoup de langages sans paramétrage. Plus d'info sur cette article : Colorer du code source dans un rapport LaTeX avec Minted
~brvoisin

Messages : 1
Géo : France

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit