Re: Problemi di “colore” con listings!

#80094
Up
0
Down
::


Ecco il codice richiesto (spero ci sia tutto quello che ti serve)
`
\documentclass[10pt,% % corpo del font principale
a4paper,% % carta A4
twoside,openright% % fronte-retro (openany)
]{book}

\usepackage[T1]{fontenc} % codifica dei font:
% NOTA BENE! richiede una distribuzione *completa*
% di LaTeX

\usepackage[utf8]{inputenc} % codifica di input; anche [latin1] va bene
% NOTA BENE! va accordata con le preferenze
% dell'editor

\usepackage{listings} % inglobare codici di programmazione

\usepackage[dvipsnames]{xcolor} % colori

% gestione delle lettere accentate per il pacchetto listings
\lstset{
literate={è}{{\`e}}1
{é}{{\'e}}1
{ì}{{\`i}}1
{à}{{\`a}}1
{ù}{{\`u}}1
{ò}{{\`o}}1
{À}{{\'A}}1
{È}{{\`E}}1
{É}{{\`E}}1
{Ì}{{\`I}}1
{Ò}{{\`o}}1
{Ù}{{\`U}}1
}

% Impostazioni per C
\lstloadlanguages{C} % caricamento del linguaggio C

\lstdefinestyle{c}{% % definizione di un nuovo stile per il C
language=C, % impostazione del linguaggio
basicstyle=\scriptsize \ttfamily,% % dimensione e stile del carattere di base
moredelim=[\color{purple}]{<}{>},
%moredelim=[\color{purple}]{\#include}{>}, % riga di prova
%moredelim=[\color{purple}]{\#include}{“}, % riga di prova
commentstyle=\color{OliveGreen} \itshape,% % dimensione e sitle dei commenti
%morekeywords={},% % aggiunta di parole chiave non riconosciute
keywordstyle=\color{RoyalBlue} \bfseries,% % dimensione e stile delle parole chiave
stringstyle =\color{red},% % dimensione e stile delle stringhe
showstringspaces=false,% % non segna gli spazi nelle stringhe
tabsize=4,% % dimensione della tabulazione
numbers=left,% % posizione numeri riga
stepnumber=1,% % passo dei numeri di riga
numberstyle=\tiny,% % stile dei numeri di riga
numbersep=10pt,% % distanza tra numeri di riga e listato
breaklines=true,% % mandare a capo le righe troppo lunghe
breakautoindent=true,% % indenta le righe spezzate
breakindent=30pt,% % punti di indentazione per le righe spezzate
frame=single,%
rulecolor=\color{black},%
captionpos=t% % posizione dell'etichetta del codice
}

\begin{document}
\begin{lstlisting}[style=c]
/* Vorrei che il colore del file fosse di un colore diverso sia che sia
messo tra apici (simile alle stringhe, e quindi prende quel colore) sia
che sia messo tra < >. */
#include “pippo.h”
#include /* Nel caso non fosse possibile farlo mi accontenterei di colorarlo anche
come se fosse una stringa. Però ho notato questo problema, cioè se nel testo
incontra il simbolo < listings me lo colora come se fosse compreso tra < > */
for ( i = 0; i < 6; i ++) { /* Ha iniziato a colorare tutto il testo */ if (a = 0) { /* Se adesso utilizzo il carattere > smette di colorarlo */
a = 5;
stringa = “Ciao Mondo!”
}
}
\end{lstlisting}
\end{document}`
In pratica vorrei che “pippo.h” e fossero dello stesso colore, ma a loro volta di colore diverso dalla stringa “Ciao Mondo!”
Per quanto riguarda “l’effetto collaterale” lo puoi osservare nel ciclo for dopo che ho utilizzato il simbolo <, e finisce all'interno del commento dopo aver utilizzato il simbolo >.

All’interno della definizione del mio stile ci sono due righe commentate, ovvero
`%moredelim=[\color{purple}]{\#include}{>}, % riga di prova
%moredelim=[\color{purple}]{\#include}{“}, % riga di prova`
erano delle prove che avevo fatto, ma non hanno sortito l’effetto voluto! 🙁

Go to top