- Questo topic ha 14 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 17 anni, 3 mesi fa da
egreg9.
-
CreatoreTopic
-
10 Novembre 2008 alle 7:59 #28477::
Ciao a tutti, ClassicThesis non va d’accordo con il comando \lstlistoflistings. Il seguente
`\documentclass{scrartcl}\usepackage[italian]{babel}
\usepackage[nochapters]{classicthesis-ldpkg}
\usepackage[nochapters]{classicthesis}\addto\captionsitalian{%
\renewcommand{\lstlistingname}{Codice}}\addto\captionsitalian{%
\renewcommand{\lstlistlistingname}{Elenco dei codici}}\begin{document}
\phantomsection
\refstepcounter{dummy}
\addcontentsline{toc}{section}{\lstlistlistingname}
\pdfbookmark[1]{\lstlistlistingname}{lol}
\lstlistoflistings\begin{lstlisting}[float,caption=Un codice mobile.]
for i:=maxint to 0 do
begin
{ non far nulla }
end;
\end{lstlisting}
\end{document}`
funziona benone con le classi standard, ma con ClassicThesis ci sono due problemi:
1. c’è un errore in compilazione (anche se non fatale);
2. lo stile dell’elenco dei codici non è omogeneo con quello degli altri elenchi (ci sono i soliti puntini…).Come rimediare?
Grazie mille,
L.
-
CreatoreTopic
-
AutoreRisposte
-
-
10 Novembre 2008 alle 9:45 #28478::
Ciao a tutti, ClassicThesis non va d’accordo con il comando \lstlistoflistings. Il seguente
`\documentclass{scrartcl}\usepackage[italian]{babel}
\usepackage[nochapters]{classicthesis-ldpkg}
\usepackage[nochapters]{classicthesis}\addto\captionsitalian{%
\renewcommand{\lstlistingname}{Codice}}\addto\captionsitalian{%
\renewcommand{\lstlistlistingname}{Elenco dei codici}}\begin{document}
\phantomsection
\refstepcounter{dummy}
\addcontentsline{toc}{section}{\lstlistlistingname}
\pdfbookmark[1]{\lstlistlistingname}{lol}
\lstlistoflistings\begin{lstlisting}[float,caption=Un codice mobile.]
for i:=maxint to 0 do
begin
{ non far nulla }
end;
\end{lstlisting}
\end{document}`
funziona benone con le classi standard, ma con ClassicThesis ci sono due problemi:
1. c’è un errore in compilazione (anche se non fatale);
2. lo stile dell’elenco dei codici non è omogeneo con quello degli altri elenchi (ci sono i soliti puntini…).Come rimediare?
Non ho alcun errore in compilazione. Per quanto riguarda l’elenco, il problema è serio e ci dovrebbe pensare Miède. Il fatto è che il trucco che ti ho mostrato per la coabitazione con float qui non funziona: il pacchetto listings viene caricato da classicthesis-ldpkg, mentre tocloft arriva dopo ed è troppo tardi.
Ho provato un paio di trucchi, ma ancora niente.
Ciao
Enrico
-
10 Novembre 2008 alle 13:31 #28479
-
14 Novembre 2008 alle 7:30 #28480
-
20 Novembre 2008 alle 21:56 #28481::
Ops! Mi erano sfuggite queste due righe, presenti sotto forma di commento in ClassicThesis.tex (ma non nella documentazione pdf):
% To Do:
% * support a List of Listings that looks like the other listsPiù chiaro di così…
Direi che André ha gettato la spugna un po’ troppo presto:
`\newlistof{listings}{lol}{\lstlistlistingname}
\renewcommand{\cftlistingspresnum}{\scshape\MakeTextLowercase}%
\renewcommand{\cftlistingsfont}{\normalfont}%
\renewcommand{\cftlistingspagefont}{\normalfont}%
\renewcommand{\cftlistingsleader}{\hspace{1.5em}}%
\renewcommand{\cftlistingsafterpnum}{\cftparfillskip}%
\let\l@lstlisting\l@listings
\let\lstlistoflistings\listoflistings`
I valori che ho dato ai comandi di tocloft relativi a questo tipo di indice sono presi da ClassicThesis e non sono sicuro che facciano ciò che si intende. Ma l’idea è quella.Puoi usare \lstlistoflistings o \listoflistings a piacere per produrre l’indice.
Visto che il trucco l’ho trovato? 🙂 Naturalmente va messo quando sono caricati sia listings che tocloft.
Ciao
Enrico
-
21 Novembre 2008 alle 21:30 #28482::
Direi che André ha gettato la spugna un po’ troppo presto:
`\newlistof{listings}{lol}{\lstlistlistingname}
\renewcommand{\cftlistingspresnum}{\scshape\MakeTextLowercase}%
\renewcommand{\cftlistingsfont}{\normalfont}%
\renewcommand{\cftlistingspagefont}{\normalfont}%
\renewcommand{\cftlistingsleader}{\hspace{1.5em}}%
\renewcommand{\cftlistingsafterpnum}{\cftparfillskip}%
\let\l@lstlisting\l@listings
\let\lstlistoflistings\listoflistings`
I valori che ho dato ai comandi di tocloft relativi a questo tipo di indice sono presi da ClassicThesis e non sono sicuro che facciano ciò che si intende. Ma l’idea è quella.Puoi usare \lstlistoflistings o \listoflistings a piacere per produrre l’indice.
Visto che il trucco l’ho trovato? 🙂 Naturalmente va messo quando sono caricati sia listings che tocloft.
Funziona egregiamente! 😉 Alè! 😀
Grazie mille,
Lorenzo
-
21 Novembre 2008 alle 22:22 #28483::
Direi che André ha gettato la spugna un po’ troppo presto:
`\newlistof{listings}{lol}{\lstlistlistingname}
\renewcommand{\cftlistingspresnum}{\scshape\MakeTextLowercase}%
\renewcommand{\cftlistingsfont}{\normalfont}%
\renewcommand{\cftlistingspagefont}{\normalfont}%
\renewcommand{\cftlistingsleader}{\hspace{1.5em}}%
\renewcommand{\cftlistingsafterpnum}{\cftparfillskip}%
\let\l@lstlisting\l@listings
\let\lstlistoflistings\listoflistings`
I valori che ho dato ai comandi di tocloft relativi a questo tipo di indice sono presi da ClassicThesis e non sono sicuro che facciano ciò che si intende. Ma l’idea è quella.Puoi usare \lstlistoflistings o \listoflistings a piacere per produrre l’indice.
Visto che il trucco l’ho trovato? 🙂 Naturalmente va messo quando sono caricati sia listings che tocloft.
Funziona egregiamente! 😉 Alè! 😀
In realtà si sprecano un paio di contatori, ma poco male. Si può evitarlo sostituendo la prima riga con
`\begingroup
\let\newcounter\@gobble\let\setcounter\@gobbletwo
\globaldefs=\@ne \let\c@loldepth\@ne
\newlistof{listings}{lol}{\lstlistlistingname}
\endgroup`
Il comando \newlistof{listings}{lol}{\lstlistlistingname} infatti definisce con \newcounter due contatori: \newcounter{listings}, \newcounter{loldepth}, poi dà \setcounter{listings}{0} e \setcounter{loldepth}{1}. In quel modo disabilito temporaneamente i comandi \newcounter e \setcounter. Con \globaldefs=1 mi assicuro che tutte le definizioni che vengono date dal comando \newlistof siano valide anche fuori dal gruppo in cui ho disabilitato quei due comandi. ❗ Alla fine del gruppo \globaldefs ritorna al valore precedente. ❗ Mi occorre solo dare il valore corretto a \c@loldepth che è l’analogo del contatore tocdepth, qui è del tutto inutile.Per avere i listati numerati globalmente (come mi pare sia lo stile per figure e tabelle), sai di sicuro come si fa:
`\lstset{numberbychapter=false}`
nel preambolo.Puoi comunicarlo a Miede, purché citi la paternità. 8) Immagino che tu abbia capito perché ci sono arrivato. 😉
Ciao
Enrico
-
22 Novembre 2008 alle 8:17 #28484::
Caro Enrico,ti ringrazio di tutto. Ho solo una curiosità (non essenziale, in relazione all’oggetto della discussione). Il pacchetto tocloft e il pacchetto float definiscono entrambi lo stesso comando \newlistof. Anzi, verosimilmente è tocloft che riprende quel comando da float. Ho visto dalla do. di tocloft che non ci sono problemi di compatibiltà (il pacchetto float è citato più volte), ma (profano qual sono), mi viene spontaneo chuidermi come ciò sia possibile…
Puoi comunicarlo a Miede, purché citi la paternità. 8)
Lo farò senz’altro.
Immagino che tu abbia capito perché ci sono arrivato. 😉
Eh, sì… 😉
Grazie mille,
Lorenzo
-
22 Novembre 2008 alle 11:55 #28485::
Caro Enrico,
ti ringrazio di tutto. Ho solo una curiosità (non essenziale, in relazione all’oggetto della discussione). Il pacchetto tocloft e il pacchetto float definiscono entrambi lo stesso comando \newlistof. Anzi, verosimilmente è tocloft che riprende quel comando da float. Ho visto dalla do. di tocloft che non ci sono problemi di compatibiltà (il pacchetto float è citato più volte), ma (profano qual sono), mi viene spontaneo chuidermi come ciò sia possibile…
Non mi risulta. Il pacchetto float definisce il comando \listof che serve a comporre l’elenco dei nuovi ambienti che possono essere creati con \newfloat.
Ti spiegai qualche giorno fa il trucco per usare le tecniche di tocloft al posto di quelle di float, infatti.
Ciao
Enrico
-
22 Novembre 2008 alle 12:06 #28486::
Non mi risulta. Il pacchetto float definisce il comando \listof che serve a comporre l’elenco dei nuovi ambienti che possono essere creati con \newfloat.
Ops! Il pacchetto float definisce i comandi \newfloat e \listof. Il pacchetto tocloft definisce il comando \newlistof. Ho fatto confusione… 😳
Grazie mille,
Lorenzo
-
25 Novembre 2008 alle 19:31 #28487::
Puoi comunicarlo a Miede, purché citi la paternità.
Fatto. Ecco la risposta di André:
Dear Lorenzo,
[…]
ArsClassica looks fine, it’s a very good idea for an extension! 🙂Many thanks for the input, I’ll put the Gregorio-solution on my stack and look into the issue some time later. I have also some new features on my mind, such as dynamic text block configuration for 10–12pt fonts (Palatino+Minion), an option for dotted ToC etc. I wish I could put more time into classicthesis and re-build it to make it more stable and to facilitate the configuration or to enable style integration (such as ArsClassica). Unfortunately, this is probably not gonna happen in the next couple years, as I am too busy with my job and the research… 🙁
Kind regards,
AndréCiao,
L.
-
26 Maggio 2009 alle 13:34 #28488::
Scusate se riapro l’argomento ma c’e’ qualcosa che non ho ben chiara. Ho provato a produrre il codice:`
\documentclass{scrreprt}\usepackage{classicthesis-ldpkg}
\usepackage[eulerchapternumbers,subfig,beramono,eulermath,pdfspacing,parts]{classicthesis}
\usepackage{listings}\lstset{language=Matlab}
\newlistof{listings}{lol}{\lstlistlistingname}
\renewcommand{\cftlistingspresnum}{\scshape\MakeTextLowercase}%
\renewcommand{\cftlistingsfont}{\normalfont}%
\renewcommand{\cftlistingspagefont}{\normalfont}%
\renewcommand{\cftlistingsleader}{\hspace{1.5em}}%
\renewcommand{\cftlistingsafterpnum}{\cftparfillskip}%
\let\l@lstlisting\l@listings
\let\lstlistoflistings\listoflistings\begin{document}
\lstlistoflistings
\newpage
ciao come stai?\begin{lstlisting}
[signals, pc, v] = pca2(data);
\end{lstlisting}\end{document}
`Perchè volevo eliminare i puntini nell’elenco del codice e renderlo omogeneo allo stile classicThesis. Vengono stampate tre pagine:
la prima contiene una sola riga “lstlisting@@listings”;
la seconda contiene la lista dei codici ancora con i puntini;
la terza pagina il codice, ed e’ corretta.
Ottengo inoltre un errore che e’ riassunto dal seguente log:`
(“C:\Program Files\MiKTeX 2.7\tex\latex\koma-script\scrtime.sty”
Package: scrtime 2006/03/30 v1.1o LaTeX2e KOMA-Script package
))
(“C:\Program Files\MiKTeX 2.7\tex\latex\listings\lstlang1.sty”
File: lstlang1.sty 2004/09/05 1.3 listings language file
)
\c@listings=\count119
\cftbeforelistingsskip=\skip101
\cftlistingsindent=\skip102
\cftlistingsnumwidth=\skip103
\c@loldepth=\count120
\cftbeforeloltitleskip=\skip104
\cftafterloltitleskip=\skip105! LaTeX Error: Missing \begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type Hfor immediate help.
…l.15 \let\l@l
stlisting\l@listings
You're in trouble here. Try typingto proceed.
If that doesn't work, type Xto quit.
`Sapreste per piacere dirmi cosa ho sbagliato?
Grazie anticipatamente per l’aiuto e l’attenzione
Cloud
-
26 Maggio 2009 alle 15:17 #28489::
Scusate se riapro l’argomento ma c’e’ qualcosa che non ho ben chiara. Ho provato a produrre il codice:
`
\documentclass{scrreprt}\usepackage{classicthesis-ldpkg}
\usepackage[eulerchapternumbers,subfig,beramono,eulermath,pdfspacing,parts]{classicthesis}
\usepackage{listings}\lstset{language=Matlab}
\newlistof{listings}{lol}{\lstlistlistingname}
\renewcommand{\cftlistingspresnum}{\scshape\MakeTextLowercase}%
\renewcommand{\cftlistingsfont}{\normalfont}%
\renewcommand{\cftlistingspagefont}{\normalfont}%
\renewcommand{\cftlistingsleader}{\hspace{1.5em}}%
\renewcommand{\cftlistingsafterpnum}{\cftparfillskip}%
\makeatletter
\let\l@lstlisting\l@listings
\let\lstlistoflistings\listoflistings
\makeatother\begin{document}
\lstlistoflistings
\newpage
ciao come stai?\begin{lstlisting}
[signals, pc, v] = pca2(data);
\end{lstlisting}\end{document}
`Perchè volevo eliminare i puntini nell’elenco del codice e renderlo omogeneo allo stile classicThesis. Vengono stampate tre pagine:
la prima contiene una sola riga “lstlisting@@listings”;
la seconda contiene la lista dei codici ancora con i puntini;
la terza pagina il codice, ed e’ corretta.
Ottengo inoltre un errore che e’ riassunto dal seguente log:`…`
Aggiungi quello che ho evidenziato in rosso.
Ciao
Enrico
-
26 Maggio 2009 alle 15:43 #28490
-
26 Maggio 2009 alle 17:51 #28491::
Grazie per il suggerimento, funziona molto bene (devo svelarti pero’ che sono un po’ daltonico ed all’inizio non riuscivo a vedere da nessuna parte le due righe rosse attorno a quelle verdi 😀 )
Chiedo scusa, allora. Siccome potrebbe succedere in futuro (spero comunque di ricordarmelo), ti consiglio di aprire il messaggio per rispondere e cercare il marcatore .
L’idea è che quando si devono definire o ridefinire comandi che contengono @ nel nome, occorre inserire il codice fra \makeatletter e \makeatother oppure scriverlo in un file .sty da caricare con \usepackage.
Ciao
Enrico
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.