Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1647 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Latex - Utilisation de listings : encadrer du code

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Latex - Utilisation de listings : encadrer du code

n°1684008
choinul
Posté le 08-02-2008 à 15:18:05  profilanswer
 

Bonjour,
 
J'ai un soucis de mise en page avec listings.
 
Je cherche à encadrer du code formaté. J'utilise le code suivant :
 

Code :
  1. \lstset{language=C,basicstyle=\small,keywordstyle=\color{black}\bfseries,  commentstyle=\color{red}\textit,stringstyle=\color{green}\ttfamily,labelstyle=\tiny}
  2. \begin{tabular}{|c|}
  3. \hline
  4. \begin{lstlisting}[breaklines=true, breakatwhitespace=true]
  5. FILE *f;
  6. fclose(f);
  7. \end{lstlisting}\\
  8. \hline
  9. \end{tabular}


 
Ce code fonctionne, mais l'encadrement est de la largeur du code, et je souhaite qu'il fasse 8.5cm, j'ai donc entré le code suivant :
 

Code :
  1. \lstset{language=C,basicstyle=\small,keywordstyle=\color{black}\bfseries,  commentstyle=\color{red}\textit,stringstyle=\color{green}\ttfamily,labelstyle=\tiny}
  2. \begin{tabular}{|p{8.5cm}|}
  3. \hline
  4. \begin{lstlisting}[breaklines=true, breakatwhitespace=true]
  5. FILE *f;
  6. fclose(f);
  7. \end{lstlisting}\\
  8. \hline
  9. \end{tabular}


 
Mais cette fois, j'ai un espace important en haut et en bas du code avant l'encadrement, ce que je ne souhaite pas. Est-ce que quelqu'un a une solution pour résoudre ce problème?
Je trouve ça bizarre qu'en changeant la largeur, la hauteur soit augmentée... Une idée? ;)

mood
Publicité
Posté le 08-02-2008 à 15:18:05  profilanswer
 

n°1684729
choinul
Posté le 11-02-2008 à 09:49:28  profilanswer
 

Up : pas d'idée?

n°1684745
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 11-02-2008 à 10:46:30  profilanswer
 

Eviter le tabular  :??:  
 
Moi je fais ca :

\usepackage{listings}
\lstset{ % general style for listings
   numbers=left
   , tabsize=2
   , frame=single
   , breaklines=true
   , basicstyle=\ttfamily
   , numberstyle=\tiny\ttfamily
   , framexleftmargin=13mm
   , backgroundcolor=\color{grey}
   , xleftmargin=12mm
   %, frameround={tttt}
   , captionpos=b
}
\lstdefinestyle{xslt}
{
    emph={xsl,template,variable,param,for,each,apply,templates,with,param}
    , emphstyle=\color{magenta}
    , emph={[2]match, select, name, mode}
    , emphstyle={[2]\color{cyan}}
}


 
 
et après :

\begin{lstlisting}[style=xslt]
<xsl:template match='section[@name="ToCustomize">
    <xsl:apply-templates select='.' mode='OtherPleaseSpecify'/>
</xsl:template>
\end{lstlisting}


 
Et en fait tout mes listings font la largeur de ma page, et pas celle du code  [:spamafote]


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°1684904
choinul
Posté le 11-02-2008 à 15:06:46  profilanswer
 

Merci de ton aide.
C'est pas mal, mais il y a un inconvénient : lorsqu'on écrit une ligne trop longue, et que celle-ci est coupée, le bord droit de l'encadrement prend la même coloration syntaxique que le texte coupé (en rouge par exemple pour des commentaires coupés).
 
Est-ce que quelqu'un sait résoudre ce problème? (il y a une solution qui consiste à faire les coupures à la main, mais c'est un peu contraignant.)  :pt1cable:

n°1684952
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 11-02-2008 à 16:32:31  profilanswer
 

Pour mes blocs à longues lignes je triche en appliquant un autre style ayant une police plus petite :

\lstdefinestyle{bigxslt}
{
   basicstyle=\scriptsize\ttfamily
    , emph={xsl,template,variable,param,for,each,apply,templates,with,param}
    , emphstyle=\color{magenta}
    , emph={[2]match, select, name, mode}
    , emphstyle={[2]\color{cyan}}
}


 
Mais je suis intéressé par toute autre solution  :jap:


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Latex - Utilisation de listings : encadrer du code

 

Sujets relatifs
Utilisation d'une bibliothèque de tri via AJAXProbleme de code
code VHDL sous QuartusCode php et bdd
question consernant un code contenant : instanceofRetrouver le code sourrce
[crystal reports] code 39? =>pb IFieldObject[SHELL]Utilisation du resultat de ma commande GREP pour un nul [CLOS]
Problème d'utilisation des objets définis par l'utilisateur[Résolu][ASP .NET][C#] Désactiver l'impersonation en code behind
Plus de sujets relatifs à : Latex - Utilisation de listings : encadrer du code


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR