- Questo topic ha 23 risposte, 11 partecipanti ed è stato aggiornato l'ultima volta 17 anni, 9 mesi fa da
cettou.
-
CreatoreTopic
-
14 Maggio 2003 alle 12:41 #713
-
CreatoreTopic
-
AutoreRisposte
-
-
14 Maggio 2003 alle 13:48 #714::
Ciao,
ci sono varie possibilità, poi bisogna scegliere in base ai tuoi reali bisogni:usare il pacchetto alltt che funziona più o meno come verbatim a parte il fatto che puoi usare la macro di LaTeX “\” (e se non sboglio le parentesi) che mantengono il loro usuale significato.
Te lo sconsiglio a meno che tu non debba fare cose particolarmente semplici perché se devi listare del codice di programmazione complesso (e sopratutto che contenga \) ci sono i caratteri speciali che vanno a influire con il pachetto e diventa annoiante evitare i pasticci.usare fancyvrb che è un pachetto stupendo e altamente personalizzabile. lo consiglio a tutte le persone che vogliono ottenere effetti particolari con l’ambiente verbatim. la guida poi è chiara e completa.
moreverb che è un estensione del pacchetto verbatim ma che non conosco e quindi non ti so dire pregi e difetti.
altrimenti esitono una serie di pacchetti pensati per scrivere codice, che però non ho quasi mai usato. in genere riconoscono parole chiave da mettere in grassetto automaticamente (e spesso gestire i rientri) per quelli che sono i miei ricordi però spesso sono un po’ noiosi da personalizzare, ovvero prendono un po’ di tempo per imparare ad usarli. per i nomi credo listing e lgrind ma basta una veloce ricerca su ctan.
facci sapere (magari provando questi pachetti) e intanto speriamo che qualche utente dia informazioni più precise.
ciao
-
17 Maggio 2003 alle 21:59 #715::
ciao,
ho appena visto che nella mia distribuzione linux (mandrake 9.0) c’è un apparente comodissimo programmino di 30kb che potrebbe fare al caso tuo: si chiama C++2latex e la descrizione dice:C++2LaTeX takes as input a C or C++ source file and outputs a LaTeX file that is a beautified listing (optionally the output can contain the ‘documentstyle’ header and so on).
facci sapere come è andata
ciao
f
-
17 Maggio 2003 alle 22:39 #716::
Ho fatto una prova con c++2latex convertendo un programma complicatissimo, pieno di commenti e lunghissimo.
il risultato è strabiliante, le parole chiave come int, in return etc vengono messe in grassetto, i commenti in corsi e il resto in caretteri normali.
il tutto con un banalissimo c++2latex nomefile.cpp, si ottiene il file .tex, sia aggiunge begin{document} e compagina bella ed è tutto pronto.
il codice non so se è pasticicato, ma il risultato è ottimo… anzi, vi dirò, il programma viene scritto talmente bene che non sembra più un programma vero e proprio (sono abituato al monospace, che volete…), sembra qualcosa d’altro.qualcuno sa se esiste qualche cosa di analogo sotto winodoz?
ciao
f
-
17 Maggio 2003 alle 22:51 #717
-
18 Maggio 2003 alle 6:20 #718::
qualcuno sa se esiste qualche cosa di analogo sotto winodoz?
Come ben sai, Linux è un sistema open-source… puoi sempre tentare di prendere il codice e ri-compilarlo con un compilatore per Winzozz :D… Questo però credo te lo possa chiarire meglio ev.
Mai svegliare il can che dorme
Comunque, eccomi qui: per C++2LaTeX esistono i sorgenti nel classico tarball gzippato ed anche uno schifoso rpm, ma per quanto ne so non c’è l’eseguibile per Win??; se vi garba date un’occhiata alla home page del progetto. Da qualche parte dovrei ancora avere un’installazione di Cygwin… quasi quasi provo a compilarlo per Win?? e poi qualcuno lo testerà. Vi farò sapere.
-
18 Maggio 2003 alle 22:25 #719::
Mai svegliare il can che dorme
Comunque, eccomi qui: per C++2LaTeX esistono i sorgenti nel classico tarball gzippato ed anche uno schifoso rpm, ma per quanto ne so non c’è l’eseguibile per Win??; se vi garba date un’occhiata alla home page del progetto. Da qualche parte dovrei ancora avere un’installazione di Cygwin… quasi quasi provo a compilarlo per Win?? e poi qualcuno lo testerà. Vi farò sapere.E io lo sapevo, ecco perché ho fatto il tuo nome… 😉
-
19 Luglio 2004 alle 6:30 #720::
usare il pacchetto alltt che funziona più o meno come verbatim a parte il fatto che puoi usare la macro di LaTeX “\” (e se non sboglio le parentesi) che mantengono il loro usuale significato.
Te lo sconsiglio a meno che tu non debba fare cose particolarmente semplici perché se devi listare del codice di programmazione complesso (e sopratutto che contenga \) ci sono i caratteri speciali che vanno a influire con il pachetto e diventa annoiante evitare i pasticci.usare fancyvrb che è un pachetto stupendo e altamente personalizzabile. lo consiglio a tutte le persone che vogliono ottenere effetti particolari con l’ambiente verbatim. la guida poi è chiara e completa.
moreverb che è un estensione del pacchetto verbatim ma che non conosco e quindi non ti so dire pregi e difetti.
altrimenti esitono una serie di pacchetti pensati per scrivere codice, che però non ho quasi mai usato. in genere riconoscono parole chiave da mettere in grassetto automaticamente (e spesso gestire i rientri) per quelli che sono i miei ricordi però spesso sono un po’ noiosi da personalizzare, ovvero prendono un po’ di tempo per imparare ad usarli. per i nomi credo listing e lgrind ma basta una veloce ricerca su ctan.
Io consiglierei di utilizzare sempre listings perché (per quanto ho visto in giro) è il pacchetto che permette maggiore personalizzazione della formattazione del codice e non è difficile da usare in quanto corredato da un ottimo manuale. Per ulteriori informazioni, invito chi fosse interessato a leggere qua, qua e qua.
-
6 Giugno 2005 alle 20:28 #721
-
9 Giugno 2005 alle 20:13 #722
-
30 Giugno 2005 alle 10:26 #723::
Ho provato cpp2latex ed è meravgilioso, a parte che a volte mi trovo nel pdf le righe troppo lunghe che escono dal foglio. Alcune volte riesce a capire e va a capo, altre invece no (specie quando ci sono array con argomenti lunghi bla[blablabla…].E poi l’opzione sintax highlighting con -h non mi funziona.
PS: sto usando l’rpm, non sono riuscito a compilarlo quell’altro.
Ciao!
-
1 Luglio 2005 alle 8:24 #724::
Ciaoda tempo tenevo sott’occhio questo topic. Ho scaricato Cpp2latex e me lo sono riscritto in MS Visual C++, per aggiungerci alcune parole riservate e per poterlo personalizzare a mio piacimento. La mia versione e’ ancora un po’ grezza ma funziona come l’originale. In realta’ ero partito da un semplice programmino che strippa via i commenti dai listati C e poi mi sono allargato 😆
Grazie ai vostri suggerimenti pero’ ho provato lo strabiliante pacchetto listings 😯 e devo dire che listings fa tutto quello che serve e molto di piu’.Il mio consiglio e’ decisamente listings.
-
22 Novembre 2008 alle 13:43 #725::
Ciao!
é da un po’ che sto cercando come inserire del codice in un documento latex, ho provato verbatim… e poi ho scoperto listing, che va benissimo, posso personalizzare la grandezza del carattere e soprattutto riconosce le ligne di commento del codice e le mette in grigio (ho scenlo io il colore grigio)!però ho un piccolo problema…prima di inserire il listing devo fare un \newpage, altrimenti mi provoca una lunga lista di errori!
Qualcuno sa il perché?
-
22 Novembre 2008 alle 14:16 #726::
Ciao!
é da un po’ che sto cercando come inserire del codice in un documento latex, ho provato verbatim… e poi ho scoperto listing, che va benissimo, posso personalizzare la grandezza del carattere e soprattutto riconosce le ligne di commento del codice e le mette in grigio (ho scenlo io il colore grigio)!però ho un piccolo problema…prima di inserire il listing devo fare un \newpage, altrimenti mi provoca una lunga lista di errori!
Qualcuno sa il perché?
Stai parlando di listing o di listings?
Esempio minimo, per favore.
Ciao
Enrico
-
22 Novembre 2008 alle 16:02 #727::
Ciao!Per inserire il codice faccio così:
\newpage
\vspace{0.8 cm}
\hline
\lstinputlisting{code.c}
\vspace{0.5 cm}Prima faccio un \lset generale:
\lstset{language={C},numbers=none, basicstyle=\ttfamily \small, commentstyle=\color{grey},frame={tb}, showstringspaces=false}
se tolgo il \newpage prima dell’inserimento del codice fa quasi una 30ina di errori, ma che probabilmente deraivano tutti da una cosa sola perché se tolgo l’inserimento del codice tutto va bene.
il risultato dovrebbe essere più o meno:
______________________________
listing 1: mioCode________________
main{
….}
…
______________________________
-
22 Novembre 2008 alle 17:05 #728::
Ciao!
Per inserire il codice faccio così:
\newpage
\vspace{0.8 cm}
\hline
\lstinputlisting{code.c}
\vspace{0.5 cm}Prima faccio un \lset generale:
\lstset{language={C},numbers=none, basicstyle=\ttfamily \small, commentstyle=\color{grey},frame={tb}, showstringspaces=false}
se tolgo il \newpage prima dell’inserimento del codice fa quasi una 30ina di errori, ma che probabilmente deraivano tutti da una cosa sola perché se tolgo l’inserimento del codice tutto va bene.
il risultato dovrebbe essere più o meno:
______________________________
listing 1: mioCode________________
main{
….}
…
______________________________Non puoi usare \hline fuori dagli ambienti tabular. Suppongo che quel formato si possa ottenere tramite comandi specifici di listings.
Ciao
Enrico
-
22 Novembre 2008 alle 17:08 #729
-
22 Novembre 2008 alle 17:39 #730::
si, difatti da l’errore ma funziona comunque…
lo uso solo perché non riesco a trovare un formato che lo faccia…e il problema é che devo fare così…qualcuno conosce il formato adeguato?
Puoi provare a scrivere \medskip\hrule\nobreak invece di \hline:
`testo prima\bigskip\hrule\nobreak
\lstinputlisting{code.c}
\medskiptesto dopo`
Ti consiglio di aggiungere
`abovecaptionskip=0pt,belowcaptionskip=\medskipamount`
alle preferenze impostate con \lstset.Naturalmente sarà meglio definire un comando apposito:
`\newcommand{\mylstinputlisting}[2][]{%
\bigskip\hrule\nobreak
\lstinputlisting[#1]{#2}
\medskip}`
e, già che ci sei, anche un ambiente:
`\lstnewenvironment{mylstlisting}[1][]
{\bigskip\hrule\nobreak\lstset{#1}}
{\medskip}`
Attento che, per motivi dipendenti da come agisce listings, è possibile che il primo filetto venga staccato dalla didascalia. Se dovesse succedere, puoi correggere scrivendo \pagebreak prima del codice. Meglio \pagebreak di \newpage, che tronca la pagina, il primo invece la riempie.Ciao
Enrico
-
22 Novembre 2008 alle 18:51 #731
-
22 Novembre 2008 alle 19:09 #732::
Ciao! grazie mille per la risposta!
effettivamente funziona bene.
Solo che non capisco bene perché…
solo se avete tempo e voglia di spiegarlo…se no lo uso e basta =p
Il comando \hrule, dato in modo verticale (cioè tra un capoverso e un altro) produce un filetto orizzontale largo quanto la giustezza corrente. Non lo troverai nel manuale di LaTeX, fa parte dei trucchi del mestiere. 🙂
il comando \nobreak a cosa serve?
Dovrebbe servire, in questo caso, a fare in modo che TeX non veda un buon posto dove cambiare pagina subito dopo il filetto. Potrebbe non funzionare, dipende da come listings gestisce la composizione; sarebbe troppo lungo andare a vedere tutto ciò che fa; perciò lasciamo \nobreak e speriamo che faccia il suo compito. Se non dovesse andare, la soluzione che ti ho proposto ti permette di correggere facilmente (quando il documento è in forma definitiva per quanto riguarda il testo, sia chiaro) eventuali cambi pagina scorretti.
cos’é un ambiente? come lo uso?
Scusa? Usi LaTeX e non sai che cos’è un ambiente? Mai scritto \begin{enumerate} o roba del genere?
Con la seconda definizione puoi scrivere il tuo codice direttamente nel documento LaTeX:
`\begin{mylstlisting}
main { …
}
…
\end{mylstlisting}`
La definizione data assicura che il risultato sia lo stesso che ottieni con il comando \mylstinputlisting.Ciao
Enrico
-
22 Novembre 2008 alle 19:20 #733
-
9 Dicembre 2008 alle 1:03 #734::
Ciao! ritorno sul problema….ho un testo LaTex :
`\chapter{Code de l'exemple Complet C}
\label{ch:CodeDeLExempleYS}\pagebreak
\section{Exemple complet C – main.c}
\mylstinputlisting[]{code/ExCompletC/main.c}\pagebreak
\section{Exemple complet C – callbacks.h}
\mylstinputlisting[]{code/ExCompletC/callbacks.h}`Il primo \pagebreak sono obbligata a metterlo se no da 125 errori!! e questo solo perché il primo file del capitolo é su sue pagine…se metto un codice che sta sulla prima pagina tutto funziona..
Strano perché tutti i file che metto dopo li taglia correttamente, senza dare errori….
Per me é un po’ un problema perché devo mettere dei codici C in annesso al mio documento. E facendo in questo modo ho il titolo del capitolo da solo su una prima pagina e i codici iniziano solo dopo…
Sarebbe meglio se riuscissi a togliere l’errore e far iniziare il primo codice sulla pagina del capitolo….
Avete un’idea????
p.s. mylstinputlisting vedi questo topic “egreg9”, Sab Nov 22, 2008 6:39 pm
-
9 Dicembre 2008 alle 1:46 #735::
Ciao! ritorno sul problema….
ho un testo LaTex :
`\chapter{Code de l'exemple Complet C}
\label{ch:CodeDeLExempleYS}\pagebreak
\section{Exemple complet C – main.c}
\mylstinputlisting[]{code/ExCompletC/main.c}\pagebreak
\section{Exemple complet C – callbacks.h}
\mylstinputlisting[]{code/ExCompletC/callbacks.h}`Il primo \pagebreak sono obbligata a metterlo se no da 125 errori!! e questo solo perché il primo file del capitolo é su sue pagine…se metto un codice che sta sulla prima pagina tutto funziona..
Strano perché tutti i file che metto dopo li taglia correttamente, senza dare errori….
Per me é un po’ un problema perché devo mettere dei codici C in annesso al mio documento. E facendo in questo modo ho il titolo del capitolo da solo su una prima pagina e i codici iniziano solo dopo…
Sarebbe meglio se riuscissi a togliere l’errore e far iniziare il primo codice sulla pagina del capitolo….
Avete un’idea????
p.s. mylstinputlisting vedi questo topic “egreg9”, Sab Nov 22, 2008 6:39 pm
Se provo senza \pagebreak non ottengo alcun errore, con un file di codice che non sta in una pagina. Magari se provi a riportare almeno uno di quei 125 errori…
Ciao
Enrico
-
9 Dicembre 2008 alle 1:57 #736::
Il primo é`Incomplete \ifffalse; all text was ignored after line 39.
\fi
1.39 glade_xml_signal_autoconnect(xml);`Il secondo é identico
con l’aggiunta di:
`
Runaway text?
\newlabel{ch\global \let `
il terzo é :
`!Forbidded control sequence found while scanning of \write.
}`après il fait des :
Missing …La linea 39 dell’errore é la linea dove taglia il file main.c.
Ma non ci capisco un tubo degli errori di LateX…..
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.