- Questo topic ha 17 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 17 anni, 10 mesi fa da
lorenzo.pantieri.
-
CreatoreTopic
-
10 Novembre 2008 alle 8:05 #28492::
Ciao a tutti,mi è stato fatto notare che il “mio” stile bibliografico classic.bst (si trova qui: http://www.lorenzopantieri.net/LaTeX.html) non è compatibile con il comando “and others”. Per esempio:
`\documentclass{scrartcl}\usepackage[italian]{babel}
\usepackage[square,sort&compress]{natbib}
\usepackage[nochapters]{classicthesis-ldpkg}
\usepackage[nochapters]{classicthesis}
\usepackage[italian]{arsclassica}\begin{document}
Leggi~\citep{oetiker:introduzione}.
\bibliographystyle{classic}
\bibliography{Bibliografia}
\end{document}`
dove Bibliografia.bib è
`@MANUAL{oetiker:introduzione,
AUTHOR = {Oetiker, Tobias and others},
TITLE = {Una (mica tanto) breve introduzione a \LaTeXe},
YEAR = {2000}
} `
Compilando si ottiene un assurdoOetiker, T. e others (2000), Una (mica tanto) breve introduzione a LaTeX.
Come va modificato classic.bst per avere
`\emph{et.~al}`
al posto dell’errato “e Others”?Grazie mille,
L.
-
CreatoreTopic
-
AutoreRisposte
-
-
10 Novembre 2008 alle 9:54 #28493::
Ciao a tutti,
mi è stato fatto notare che il “mio” stile bibliografico classic.bst (si trova qui: http://www.lorenzopantieri.net/LaTeX.html) non è compatibile con il comando “and others”. Per esempio:
`\documentclass{scrartcl}\usepackage[italian]{babel}
\usepackage[square,sort&compress]{natbib}
\usepackage[nochapters]{classicthesis-ldpkg}
\usepackage[nochapters]{classicthesis}
\usepackage[italian]{arsclassica}\begin{document}
Leggi~\citep{oetiker:introduzione}.
\bibliographystyle{classic}
\bibliography{Bibliografia}
\end{document}`
dove Bibliografia.bib è
`@MANUAL{oetiker:introduzione,
AUTHOR = {Oetiker, Tobias and others},
TITLE = {Una (mica tanto) breve introduzione a \LaTeXe},
YEAR = {2000}
} `
Compilando si ottiene un assurdoOetiker, T. e others (2000), Una (mica tanto) breve introduzione a LaTeX.
Come va modificato classic.bst per avere
`\emph{et.~al}`
al posto dell’errato “e Others”?Cerchi “others” in classica.bst e sostituisci con “\emph{et~al.\@}”. Dovrebbe esserci però una delle domande di makebst al riguardo.
Ciao
Enrico
-
10 Novembre 2008 alle 13:30 #28494::
Cerchi “others” in classica.bst e sostituisci con “\emph{et~al.\@}”. Dovrebbe esserci però una delle domande di makebst al riguardo.
No, non funziona. 😥 Resta quell’
e OTHERS
Forse è lo stile che non supporta il comando “and others”, visto che “others” viene interpretato come un nome…
Purtroppo non ricordo più come riuscii ad ottenere quello stile con makebst. Fra l’altro, ho apportato modifiche al codice di classic.bst ottenuto da makebst. Insomma, ci vorrebbe una patch apposita…
Grazie mille,
L.
-
10 Novembre 2008 alle 13:44 #28495::
Cerchi “others” in classica.bst e sostituisci con “\emph{et~al.\@}”. Dovrebbe esserci però una delle domande di makebst al riguardo.
No, non funziona. 😥 Resta quell’
e OTHERS
Forse è lo stile che non supporta il comando “and others”, visto che “others” viene interpretato come un nome…
Purtroppo non ricordo più come riuscii ad ottenere quello stile con makebst. Fra l’altro, ho apportato modifiche al codice di classic.bst ottenuto da makebst. Insomma, ci vorrebbe una patch apposita…
Ti prego, non ho voglia di scrivermi l’esempio: presentane uno e vediamo che si può fare.
Ciao
Enrico
-
11 Novembre 2008 alle 8:26 #28496::
Ti prego, non ho voglia di scrivermi l’esempio: presentane uno e vediamo che si può fare.
Non capisco. 🙄 Ho fornito un esempio minimo compilabile quando ho aperto la discussione, riportando sia il documento .tex sia il file Bibliografia.bib. Il file classic.bst è quello sul mio sito:
http://www.lorenzopantieri.net/LaTeX_files/classic.bstMi pare che i dati del problema ci siano tutti! Poi, la soluzione, è un’altra cosa… Ho provato a modificare a mano classic.bst andando per tentativi, ma invano… 😳
Grazie mille,
L.
-
11 Novembre 2008 alle 10:29 #28497::
Ti prego, non ho voglia di scrivermi l’esempio: presentane uno e vediamo che si può fare.
Non capisco. 🙄 Ho fornito un esempio minimo compilabile quando ho aperto la discussione, riportando sia il documento .tex sia il file Bibliografia.bib. Il file classic.bst è quello sul mio sito:
http://www.lorenzopantieri.net/LaTeX_files/classic.bstMi pare che i dati del problema ci siano tutti! Poi, la soluzione, è un’altra cosa… Ho provato a modificare a mano classic.bst andando per tentativi, ma invano… 😳
Era sbagliato il suggerimento. 🙁 A quanto vedo da un esame di classic.bst la faccenda sembrerebbe a posto, ma evidentemente la funzione bbl.etal non viene chiamata correttamente dalle funzioni che devono occuparsi della composizione dei nomi. In effetti nella citazione “et al.” compare correttamente.
Leggere e correggere un .bst è un’impresa che sconsiglierei a chiunque. 🙁 Se si usa plainnat come stile bibliografico, “et al.” viene fuori correttamente. Boh.
Ciao
Enrico
-
11 Novembre 2008 alle 10:33 #28498::
Leggere e correggere un .bst è un’impresa che sconsiglierei a chiunque. 🙁 Se si usa plainnat come stile bibliografico, “et al.” viene fuori correttamente. Boh.
Proprio così… 😥 Dici che copiare/incollare le relative righe di codice (ma quali?) da plainnat.bst a classic.bst è proprio da escludere?
Grazie ancora,
L.
-
11 Novembre 2008 alle 11:06 #28499::
Leggere e correggere un .bst è un’impresa che sconsiglierei a chiunque. 🙁 Se si usa plainnat come stile bibliografico, “et al.” viene fuori correttamente. Boh.
Proprio così… 😥 Dici che copiare/incollare le relative righe di codice (ma quali?) da plainnat.bst a classic.bst è proprio da escludere?
Ho trovato l’inghippo: la chiamata della funzione bib.name.font è al posto sbagliato; così BibTeX non trova più “others”, ma “\textsc{others}”. ❗
Sostituisci “others” con “\textsc{others}” alla riga 415. Credo che basti. Purtroppo è solo un tacon (rattoppo), ma sinceramente non me la sento di spostare la chiamata di bib.name.font da un’altra parte. Speriamo che non sia peso el tacon del buso.
Ciao
Enrico
-
11 Novembre 2008 alle 11:57 #28500::
Che ci vuole! 😀
Prova a sostituire le righe 415-417 con queste
` t “others” =
{ ” ” * bbl.etal emphasize * }
{ ” ” * bbl.etal emphasize * }
`
“others” dopo la t non c’entra nulla.Non ho verificato se funzia. Vedi se va: io non posso provare un po’ perché non ho LaTeX e un po’ perché non ho molto tempo.
Devo scappare 👿 👿 👿 👿
Ciao,
Andrea
-
11 Novembre 2008 alle 12:23 #28501::
Che ci vuole! 😀
Prova a sostituire le righe 415-417 con queste
` t “others” =
{ ” ” * bbl.etal emphasize * }
{ ” ” * bbl.etal emphasize * }
`
“others” dopo la t non c’entra nulla.Non ho verificato se funzia. Vedi se va: io non posso provare un po’ perché non ho LaTeX e un po’ perché non ho molto tempo.
Devo scappare 👿 👿 👿 👿
Il risultato di if$ alla riga 418 è sempre falso, perché la stringa “others” non appare mai. Non so che conseguenze può avere questa modifica.
Ciao
Enrico
-
11 Novembre 2008 alle 12:58 #28502::
Non dovrebbe succedere nulla perché dopo if$ il gruppo si chiude.and others Lorenzo lo mette sotto AUTHOR = {Oetiker, Tobias and others}, nel file Bibliografia.bib, quindi c’è: non deve comparire nelle due righe
`
{ ” ” * bbl.etal emphasize * }
{ ” ” * bbl.etal emphasize * } `
Queste servono solo a formattare il nome.Credo che con la mia modifica se ci sono più di due autori ( numnames #2 >), BibTeX mette i primi due autori e poi et al., mentre se è presente {autore and others} (t “others”), come in questo caso, mette autore et al.
Perché da come è scritto, nel riferimento creato con \citep dovrebbe comparire [Otiker et al.,…]. Quindi se copio la riga sopra e la metto sotto si dovrebbe ottenere lo stesso effetto.
Ciao
Andrea
-
11 Novembre 2008 alle 14:50 #28503::
Ora che sono a casa, ho fatto delle prove e purtroppo non funziona molto bene.
Ad esempio se metti
`{Oetiker, Tobias and Cognome, nome and Cognome, Nome ….}`cioè se gli autori sono n, con n>2, nella bibliografia vengono messi n-1 autori e poi et al.
Ad esempio se gli autori sono tre, compaiono due autori più et.al.
Se sono cinque, compaiono quattro autori più et al.
Se gli autori al massimo sono due va bene, altrimenti non mi sembra una cosa buona.
Ad esempio se metti sette autori, compaiono sei più et al.
Ora provo in un altro modo. Vi farò sapere.
Ciao
Andrea
-
11 Novembre 2008 alle 15:48 #28504::
Lorenzo,
buone nuove.Le modifiche precedenti non sono più valide, quindi le due righe restano quelle di partenza.
`
{ ” ” * bbl.etal emphasize * }
{ bbl.and space.word * t * } `
Alla fine non devi modificare nulla. Partendo dall’originale, si deve semplicemente spostare ‘t := dalla riga 407 alla fine della 404. Cioè da così
`….{ s nameptr
“{vv~}{ll}{, f.}{, jj}”
format.name$
bib.name.font
bibinfo bibinfo.check
't :=
nameptr #1 >
……. `
a così
`…{ s nameptr
“{vv~}{ll}{, f.}{, jj}”
format.name$ 't :=
bib.name.font
bibinfo bibinfo.check
nameptr #1 >
….`
Alla fine era una immensa cavolata. Ho provato e sembra andare bene.Ciao
Andrea
-
11 Novembre 2008 alle 17:00 #28505::
Lorenzo,
buone nuove.Le modifiche precedenti non sono più valide, quindi le due righe restano quelle di partenza.
`
{ ” ” * bbl.etal emphasize * }
{ bbl.and space.word * t * } `
Alla fine non devi modificare nulla. Partendo dall’originale, si deve semplicemente spostare ‘t := dalla riga 407 alla fine della 404. Cioè da così
`….{ s nameptr
“{vv~}{ll}{, f.}{, jj}”
format.name$
bib.name.font
bibinfo bibinfo.check
't :=
nameptr #1 >
……. `
a così
`…{ s nameptr
“{vv~}{ll}{, f.}{, jj}”
format.name$ 't :=
bib.name.font
bibinfo bibinfo.check
nameptr #1 >
….`
Alla fine era una immensa cavolata. Ho provato e sembra andare bene.Infatti questo dovrebbe evitare che in t vengano inserite le istruzioni date dalla funzione bib.name.font. Speriamo.
Ciao
Enrico
-
12 Novembre 2008 alle 7:51 #28506::
Alla fine non devi modificare nulla. Partendo dall’originale, si deve semplicemente spostare ‘t := dalla riga 407 alla fine della 404. Cioè da così
`….{ s nameptr
“{vv~}{ll}{, f.}{, jj}”
format.name$
bib.name.font
bibinfo bibinfo.check
't :=
nameptr #1 >
……. `
a così
`…{ s nameptr
“{vv~}{ll}{, f.}{, jj}”
format.name$ 't :=
bib.name.font
bibinfo bibinfo.check
nameptr #1 >
….`Ciao Andrea, purtroppo non funziona… 😥
Lo stile bibliografico classic.bst (quello vecchio, che è on line), si comporta nel modo seguente:
1. Per quello che riguarda i record bibliografici privi del comando “and others”, se ci sono due autori li scrive entrambi (sia nelle citazioni nel corpo del documento, sia nei riferimenti bibliografici posti alla fine), se ci sono tre o più autori, nel documento scrive il primo nome seguito da et al., mentre nei riferimenti bibliografici scrive tutti gli autori.
2. Per quanto concerne i record bibliografici che contengono l’istruzione “and others”, lo stile scrive nel corpo del documento il primo nome seguito da et al., mentre nei riferimenti bibliografici scrive tutti gli autori, seguiti da “e OTHERS”.
Queste caratteristiche mi vanno bene tutte, a parte l’ultimissima: quell’assurdo “e OTHERS” dovrebbe diventare et al., lasciando invariato tutto il resto.
Con la modifica che mi hai suggerito, ci sono alcune cose che non vanno:
1. Nei riferimenti bibliografici, l’ultimo nome di un elenco di due o tre autori viene in tondo, e non in maiuscoletto.
2. Ne riferimenti bibliografici, se un record contiene il comando “and others” viene sempre riportato solo il primo nome, seguito da et al.. Io nella bibliografia i nomi li vorrei tutti (mentre nei riferimenti all’interno del documento quell’et al. va benissimo).
Per chiarire il tutto ti riporto una bibliografia di esempio:
`@ARTICLE{mori:curriculum,
AUTHOR = {Mori, Lapo Filippo and Himmelmann, Maurizio},
TITLE = {Scrivere il curriculum vitae},
JOURNAL = {Ars{\TeX}nica},
YEAR = {2007}
}@BOOK{mittelbach:companion,
AUTHOR = {Goossens, Michel and Mittelbach, Frank and Braams, Johannes},
TITLE = {The {\LaTeX} Companion},
PUBLISHER = {Addison-Wesley},
YEAR = {2004},
ADDRESS = {Reading (Massachusetts)}
}@MANUAL{oetiker:introduzione,
AUTHOR = {Oetiker, Tobias and Partl, Hubert and Hyna, Irene and
Schlegl, Elisabeth},
TITLE = {Una (mica tanto) breve introduzione a \LaTeXe},
YEAR = {2000}
}@MANUAL{rossi:prova,
AUTHOR = {Rossi, Mario and Bianchi, Carlo and Verdi, Luigi and others},
TITLE = {Foobar},
YEAR = {2000}
} `
Qui c’è il main.tex.
`\documentclass{scrartcl}\usepackage[italian]{babel}
\usepackage[square,sort&compress]{natbib}
\usepackage[nochapters]{classicthesis-ldpkg}
\usepackage[nochapters]{classicthesis}
\usepackage[italian]{arsclassica}\begin{document}
Leggi~\citep{mori:curriculum}, \citep{mittelbach:companion} e \citep{oetiker:introduzione}.
Leggi~\citep{rossi:prova}.
\bibliographystyle{classic}
\bibliography{Bibliografia}
\end{document}`
Di seguito, ti riporto come dovrebbe venire il documento compilato:Leggi [Mori e Himmelmann, 2007], [Goossens et al., 2004] e [Oetiker et al., 2000].
Leggi [Rossi et al., 2000].Riferimenti bibliografici
GOOSSENS, M., MITTELBACH, F. e BRAAMS, J. (2004), The LaTeX Companion, Addison-Wesley, Reading (Massachusetts).
MORI, L. F. e HIMMELMANN, M. (2007), «Scrivere il curriculum vitae», ArsTeXnica.
OETIKER, T., PARTL, H., HYNA, I. e SCHLEGL, E. (2000), Una (mica tanto) breve introduzione a LeTeX2e.
ROSSI, M., BIANCHI, C., VERDI et al. (2000), Foobar.
Grazie mille e scusami per la pignoleria… 😳
Ciao,
L.
-
12 Novembre 2008 alle 10:06 #28507::
Ciao Andrea, purtroppo non funziona… 😥
La modifica che ho proposto io funziona. Occorrerebbe però provarla anche con citazioni del tipo @incollection e varie altre.
La riga 415 deve diventare :
`t “others” bib.name.font =`
Ripeto il motivo: la stringa t che viene esaminata contiene via via i nomi degli autori, che vengono già trattati dalla funzione bib.name.font; nel caso il campo autori contenga `and others’, occorre confrontare t con la stringa “others” trattata dalla funzione bib.name.font. La modifica che ho indicato ieri come tacon può essere resa indipendente da ciò che effettivamente fa bib.name.font (cioè aggiungere \textsc{ in testa e } in coda) semplicemente facendo trattare la stringa “others” dalla funzione stessa.Da un esame di classic.bst non mi pare che ci siano altri posti dove ci sia un confronto con “others” trattato da bib.name.font.
Ciao
Enrico
-
12 Novembre 2008 alle 12:47 #28508
-
14 Novembre 2008 alle 7:15 #28509
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.