Newsgroup: it.comp.software.tex
Titolo: indentazione con listings

devo includere del codice java in un documento tex e sto utilizzando
listings. il mio problema è dato dalle indentazioni. in particolare in
luogo di:
+--------------------------------+
|public class main {             |
|   public void main ( ) {       |
|      /* riga molto molto molto |
|molto lunga */                  |
|   }                            |
|}                               |
+--------------------------------+
vorrei una cosa del tipo:
+--------------------------------+
|public class main {             |
|   public void main ( ) {       |
|      /* riga molto molto molto |
|      molto lunga */            |
|   }                            |
|}                               |
+--------------------------------+
dalla documentazione di listings ho visto che in postbreak potrei
utilizzare \spaces, ma il numero di spazi non è fisso.
avreste qualche consiglio?
ciao
-- 
La saggezza non è un prodotto dell'istruzione ma del tentativo di
acquisirla, che dura tutta la vita.
einstein

 +--------------------------------+
la formattazione dei commenti è un problema che è toccato diverse volte
anche a me, io lo ho risolto con il seguente comando (realizzato con
l'aiuto del NG):
\newsavebox{\commentbox}
\newlength{\commentlen}
\newcommand{\alongcomment}[4][.65\linewidth]{%
   \settowidth{\commentlen}{#2}%
   \ifthenelse{\lengthtest{#1<\the\commentlen}}{%
     \sbox{\commentbox}{\parbox[t]{#1}{\textit{#2}\texttt{\ #4}}}%
   }{\sbox{\commentbox}{\textit{#2}\texttt{\ #4}}}%
   \rlap{\smash{%
     \everypar{\llap{\lst@framelr \kern\lst@breakcurrindent
                     \kern-\@totalleftmargin \kern\lst@currlwidth}}%
     \vtop{\noindent\leavevmode
       \dimen\z@=\ht\commentbox \advance\dimen\z@ by \dp\commentbox
       \advance\dimen\z@ by -\ht\lst@framebox
       \advance\dimen\z@ by -\dp\lst@framebox
       \loop \ifdim \dimen\z@>\z@
         \endgraf\noindent\leavevmode
         \advance\dimen\z@ by -\ht\lst@framebox
         \advance\dimen\z@ by -\dp\lst@framebox
       \repeat
     }%
   }}%
   \texttt{#3 }\usebox{\commentbox}
}
Per usarlo devi definire un escape in listings (io uso `)
e scrivere `\alongcomment{commento lungo}{/*}{*/}`
oltre a formattare al meglio le righe ha diversi altri vantaggi:
   - sillaba il commento
   - usa \textit invece ti \texttt\textit che trovo orrendo
   - puoi dimensionare la box del commento
   - usarlo in linguaggi differenti da java (basta cambiare i simboli da
     usare)
insomma per me funziona alla perfezione, spero faccia altrettanto per
te.
Walter
-- 
Walter Cazzola, PhD - DICo, University of Milano           ICQ UIN: 66633601
email: cazzola (at) 
disi.unige.it
 (or remove nospam. from the above address)
· · · ---------------------------- · · · ---------------------------- · · ·

 anche a me
non è solo una questione di commenti... la cosa riguarda anche il
codice.
a quanto ho visto è l'opzione keepspaces che va in conflitto con
autobreakindent. infatti con autobreakindent=true e keepspaces=false
l'indentazione è giusta, ma a me serve anche il keepspaces.

sinceramente il problema non mi era sorto, cmq buono a sapersi ;-)
grazie
-- 
Non è possibile o non è facile mutare col ragionamento ciò che da
molto tempo si è impresso nel carattere.
aristotele

 l'indentazione è giusta, ma a me serve anche il keepspaces.
non uso autobrakindent proprio per evitare problemi del genere, le righe
di codice troppo lunghe le spezzo a mia discrezione ed ovviamente le
indento di conseguenza.


 ovviamente le indento di conseguenza.
č che speravo si potesse fare automaticamente.
ciao
-- 
Ciň che dobbiamo imparare a fare, lo impariamo facendo.
aristotele

ho risolto... il problema era che mi ostinavo ad usare
columns=fullflexible in luogo id columns=fixed.
