- Questo topic ha 16 risposte, 5 partecipanti ed è stato aggiornato l'ultima volta 16 anni, 5 mesi fa da
francesco.biccari.
-
CreatoreTopic
-
8 Dicembre 2009 alle 18:43 #40112::
Ciao a tutti,stavo pensando di cominciare un piccolo lavoretto per l’ordinamento automatico,
secondo l’ordine di citazione, delle voci della bibliografia nel caso in cui si usi thebibliography.L’unico modo banale per riuscire nell’intento credo sia quello di scrivere un programmino
che riordini fisicamente le voci nel file .tex seguendo l’ordine di citazione del file tex (eventualmente scorrendo sequenzialmente nei vari file inclusi con input o con include).Avevo pensato a cose più complicate, che non prevedessero un programma esterno, giocando con i bibcite del file .aux e una ridefinizione dell’ambiente thebibliography.
Credo però che questa seconda strada sia improponibile per tutta una serie di motivi di portabilità del codice e soprattutto considerando le mie conoscenze di TeX e il mio tempo libero!Che ne pensate? Avete altre idee?
Oppure conoscete già un programma che faccia questa cosa?Ciao ciao.
Fra
-
CreatoreTopic
-
AutoreRisposte
-
-
8 Dicembre 2009 alle 19:02 #40113::
Ciao a tutti,
stavo pensando di cominciare un piccolo lavoretto per l’ordinamento automatico,
secondo l’ordine di citazione, delle voci della bibliografia nel caso in cui si usi thebibliography.L’unico modo banale per riuscire nell’intento credo sia quello di scrivere un programmino
che riordini fisicamente le voci nel file .tex seguendo l’ordine di citazione del file tex (eventualmente scorrendo sequenzialmente nei vari file inclusi con input o con include).Avevo pensato a cose più complicate, che non prevedessero un programma esterno, giocando con i bibcite del file .aux e una ridefinizione dell’ambiente thebibliography.
Credo però che questa seconda strada sia improponibile per tutta una serie di motivi di portabilità del codice e soprattutto considerando le mie conoscenze di TeX e il mio tempo libero!Che ne pensate? Avete altre idee?
Oppure conoscete già un programma che faccia questa cosa?Lo fa lo stile unsrt di BibTeX. Ritengo che questo modo di organizzare la bibliografia sia il peggiore che si possa concepire.
Ciao
Enrico
-
8 Dicembre 2009 alle 19:24 #40114::
Lo fa lo stile unsrt di BibTeX. Ritengo che questo modo di organizzare la bibliografia sia il peggiore che si possa concepire.
Ciao Enrico,
ma intendi che la mia idea è la peggiore possibile (che ci può stare :D) oppure il classico stile numerico in ordine di citazione adottatto da migliaia di riviste e libri? (vedi appunto unsrt, nature e altre centinaia…)
Per tornare al problema, non che io usi thebibliography molto spesso, anzi,
ma vorrei dare una mano a quanti usano LaTeX una volta sola nella vita per scrivere la tesi oppure sporadicamente per scrivere qualche articolo.Molti studenti dell’università, alcuni anche miei, scrivono a fatica con LaTeX. Poi quando gli dici cosa bisogna fare per gestire una bibliografia in maniera seria giustamente molti si chiedono perché tanta fatica se poi non useranno mai più LaTeX. Vorrebbero usare solo thebibliography, ma sorge il problema dell’ordinamento.
Ed è qui che mi volevo inseriro io con un modo banale per ordinare la bibliografia senza ricorrere a BibTeX.
Ciao ciao.
Fra
-
8 Dicembre 2009 alle 22:00 #40115::
Lo fa lo stile unsrt di BibTeX. Ritengo che questo modo di organizzare la bibliografia sia il peggiore che si possa concepire.
Ciao Enrico,
ma intendi che la mia idea è la peggiore possibile (che ci può stare :D) oppure il classico stile numerico in ordine di citazione adottatto da migliaia di riviste e libri? (vedi appunto unsrt, nature e altre centinaia…)
Per tornare al problema, non che io usi thebibliography molto spesso, anzi,
ma vorrei dare una mano a quanti usano LaTeX una volta sola nella vita per scrivere la tesi oppure sporadicamente per scrivere qualche articolo.Molti studenti dell’università, alcuni anche miei, scrivono a fatica con LaTeX. Poi quando gli dici cosa bisogna fare per gestire una bibliografia in maniera seria giustamente molti si chiedono perché tanta fatica se poi non useranno mai più LaTeX. Vorrebbero usare solo thebibliography, ma sorge il problema dell’ordinamento.
Ed è qui che mi volevo inseriro io con un modo banale per ordinare la bibliografia senza ricorrere a BibTeX.
È l’idea dell’ordinamento in ordine di citazione che trovo balzana. Se la bibliografia ha una cinquantina di elementi, come si fa a trovare quello giusto? Spuntando via via che si legge? Per favore! 🙂
Può darsi che non riesca a capire le motivazioni profonde di questa procedura. ❓
Ciao
Enrico
-
8 Dicembre 2009 alle 22:16 #40116::
No Enrico, mi sono spiegato male io!La trovi con il numero, come al solito! Era sottinteso che i numeri ci fossero,
come in una normale bibliografia di un normalissimo libro o articolo scientifico 😀Per togliere ogni dubbio. Attualmente thebibliography fa questo:
`Pippo [3] riporta che Francesco non si sa spiegare. E in effetti anche Francesco [1]
è d'accordo. Francesco ha promesso però di andare a fare un corso specializzato
in una scuola molto famosa [2].Riferimenti
[1] Francesco. Comunicazione alla stampa del 16 Agosto 2005.
[2] Sapienza — Università di Roma. Scienze della Comunicazione.
[3] Pippo. Intervista del 14 Settembre 2007.`Dopo che il mio programmino sarà a punto, basterà farlo girare sul file tex, rimetterà in ordine la bibliografia e compilando due volte otterrò il seguente risultato:
`Pippo [1] riporta che Francesco non si sa spiegare. E in effetti anche Francesco [2]
è d'accordo. Francesco ha promesso però di andare a fare un corso specializzato
in una scuola molto famosa [3].Riferimenti
[1] Pippo. Intervista del 14 Settembre 2007.
[2] Francesco. Comunicazione alla stampa del 16 Agosto 2005.
[3] Sapienza — Università di Roma. Scienze della Comunicazione.
`Ho appena cominciato. Ho pensato di farlo in Python, se pensate che stia facendo uno stupidaggine fermatemi in tempo 😀
Ciao ciao.
Fra
-
8 Dicembre 2009 alle 22:28 #40117::
No Enrico, mi sono spiegato male io!
La trovi con il numero, come al solito! Era sottinteso che i numeri ci fossero,
come in una normale bibliografia di un normalissimo libro o articolo scientifico 😀Per togliere ogni dubbio. Attualmente thebibliography fa questo:
`Pippo [3] riporta che Francesco non si sa spiegare. E in effetti anche Francesco [1]
è d'accordo. Francesco ha promesso però di andare a fare un corso specializzato
in una scuola molto famosa [2].Riferimenti
[1] Francesco. Comunicazione alla stampa del 16 Agosto 2005.
[2] Sapienza — Università di Roma. Scienze della Comunicazione.
[3] Pippo. Intervista del 14 Settembre 2007.`Dopo che il mio programmino sarà a punto, basterà farlo girare sul file tex, rimetterà in ordine la bibliografia e compilando due volte otterrò il seguente risultato:
`Pippo [1] riporta che Francesco non si sa spiegare. E in effetti anche Francesco [2]
è d'accordo. Francesco ha promesso però di andare a fare un corso specializzato
in una scuola molto famosa [3].Riferimenti
[1] Pippo. Intervista del 14 Settembre 2007.
[2] Francesco. Comunicazione alla stampa del 16 Agosto 2005.
[3] Sapienza — Università di Roma. Scienze della Comunicazione.
`Ho appena cominciato. Ho pensato di farlo in Python, se pensate che stia facendo uno stupidaggine fermatemi in tempo 😀
Che ci sia il numero è il minimo. Ma come fa uno a guardare se c’è una certa citazione di cui conosce il primo autore? Se le citazioni sono una ventina (abbondiamo) non è un problema. Ma se sono duecento?
L’ordine alfabetico per primo autore è l’unica strada che io riesco a concepire. Spiegami il senso della lista in ordine di citazione.
Poi, se vuoi imparare Python, fa’ pure. 🙂 Meglio però se lo scrivi in Perl o qualcosa di più diffuso su Windoze. Ma a quel punto non è più semplice BibTeX?
Ciao
Enrico
-
8 Dicembre 2009 alle 22:52 #40118::
Ah ho capito quindi tu sei veramente contro l’ordine di citazione.
Il senso. . . be’ a dir la verità non lo so! 😀
Anch’io non sono un fan dell’ordine di citazione però è richiesto praticamente ovunque,
pertanto pensavo di partire da quello.In ogni caso l’idea è di fare due eseguibili. Il primo, non so, bibnumord che ordini
thebibliography in ordine di citazione. L’altro, più banale, e forse inutile, bibalpord che
semplicemente ordini alfabeticamente la bibliografia secondo il cognome del primo autore.
Ovviamente in questo secondo caso è consigliato l’uso di natbib.Con python sono già un po’ pratico, era per quello che l’ho scelto. Ora valuterò per bene. Comunque vorrei fare degli eseguibili per le varie piattaforme. Quindi l’utente finale non deve avere installato nulla al contrario di quanto accade con pdfcrop per esempio.
Ciao ciao.
Fra
-
8 Dicembre 2009 alle 23:21 #40119::
Ah ho capito quindi tu sei veramente contro l’ordine di citazione.
Il senso. . . be’ a dir la verità non lo so! 😀
Anch’io non sono un fan dell’ordine di citazione però è richiesto praticamente ovunque,
pertanto pensavo di partire da quello.[OT]
Uno si domanda: perché l’ordine della bibliografia per citazione? E cerca qualche motivazione che abbia a che fare con qualche logica, magari misteriosa. ❓ Invece la spiegazione è semplice; quando scrivi il tuo articolo con un word processor e devi citare un lavoro, esegui i seguenti passi:– se il lavoro compare già nella lista delle citazioni, ne guardi il numero e lo scrivi al punto del documento a cui sei arrivato;
– se il lavoro non compare, lo aggiungi alla lista delle citazioni e gli assegni il numero.Ecco la spiegazione dell’arcano mistero. ❗ Che poi il lettore non riesca a trovare nulla nell’elenco delle citazioni (e lavori di biologia che ho visto hanno più citazioni che testo dell’articolo), non ha alcuna importanza. Si noti che perfino con Word si possono organizzare i riferimenti incrociati in modo automatico. 😉
La richiesta della bibliografia in ordine di citazione è solo per pigrizia. 🙁 La cosa che più mi sconvolge è che questo ordine è prescritto dalla IEEE per le proprie riviste! E si definiscono (cito dalla pagina iniziale di http://www.ieee.org) “The world’s leading professional association for the advancement of technology”. 😯
[/OT]Ciao
Enrico
-
9 Dicembre 2009 alle 7:04 #40120
-
9 Dicembre 2009 alle 9:33 #40121
-
9 Dicembre 2009 alle 11:27 #40122::
[OT]
Per esperienza nella scrittura di articoli con Word, l’ordine di citazione è il più scomodo in assoluto (viva bibtex!). Ad ogni aggiunta, inserimento o spostamento di una citazione bisogna rinumerare tutto. La situazione è solo un po’ alleggerita dall’uso dei bookmark, che però non sono il massimo della semplicità d’uso e non tutti i coautori sono abituati a usarli.L’unico vantaggio che ci vedo è che la regola è semplice. Mi capita spesso di citare standard privi di autore. Come li ordino? In base all’ente di standardizzazione? In base al titolo? Boh.
Poi c’è un altro (s)vantaggio, la possibilità di scrivere frasi orribili del tipo “..come dice l’ampia letteratura [1-50]…” che vogliono dire: “mi hanno detto di aggiungere un po’ di letteratura, quindi metto un paio di parole chiave in google scholar e ti scodello i primi 50 risultati”
[OT]EDIT: aggiungo che trovo più facile scrivere la bibliografia in bibtex che non nell’ambiente thebibliography. Se usi thebibliography devi assumerti la responsabilità di formattare tutte le informazioni correttamente e in modo consistente. Senza contare che i principali motori di ricerca (scholar, ieeexplore, acm portal ecc…) restituiscono anche il record bibtex già pronto, anche se non sempre 100% accurato.
Saluti,
Giacomo
-
9 Dicembre 2009 alle 13:15 #40123::
Buongiorno ragazzi,eh già, ha ragione Enrico. Sebbene forse sia dovuto solo alla prigrizia/tradizione, credo di non aver mai letto un articolo o libro scientifico che usasse altri ordinameti se non quello classico di citazione.
Oramai questa cosa è nel corredo genetico di tutti. Ricordo un episiodo che mi capitò tanti anni fa. Consegnai una tesina con l’ordinamento alfabetico e i riferimenti numerici. Il prof la guardò inorridito e mi disse “Che fai, tu cominci a contare da 13?!” (mi pare che la prima citazione fosse la 13).
Per tornare invece all’utilità di ciò che voglio fare, be’… a volte si lavora tutti insieme, spesso con gente che LaTeX proprio non lo vuole usare o non ha né voglia né tempo di imparare a usarlo. Quando cominci a dire che per una ventina di riferimenti devono fare un file .bib (soprattutto scrivendo per bene i vari and ecc…) poi devono compilare con bibtex ecc…si scocciano a morte e dicono (secondo me a ragione) “ma come è possibile?! Tu che mi hai sempre detto della potenza di LaTeX e ora per ordinare una bibliografia devo fare tutte queste cose?”
E poi? Se non esiste lo stile per quella rivista? Vagli a spiegare che possono usare makebst, oppure possono modificare a mano la bibliografia prendendo i file ausiliari prodotti da BibTeX.Senza contare poi gli studenti che usano LaTeX e vedono BibTeX come uno step di conoscenza ulteriore. (Anch’io usai solo thebibliography per la mia tesi). Soprattutto quelli
che lo usano una volta sola nella vita. Non hanno né tempo né voglia di fare tutto ciò.
Però a volte arriva il prof pignolo che gli dice “Che fai cominci da 13?” e così si ritrovano
a riordinare da capo tutto quando a mano.Purtroppo è vero anche che quello che vorrei fare io non è il massimo, è sempre un programma esterno. Mi piacerebbe tanto che questa cosa potesse essere fatta
dal compilatore LaTeX con delle semplici opzioni da passare a thebibliography.
Ma purtroppo credo sia praticamente impossibile. 🙁Scusatemi per la lunghezza del post!
Grazie a tutti.
Ciao ciao.
Fra
-
9 Dicembre 2009 alle 16:43 #40124::
Ah ho capito quindi tu sei veramente contro l’ordine di citazione.
Il senso. . . be’ a dir la verità non lo so! 😀
Anch’io non sono un fan dell’ordine di citazione però è richiesto praticamente ovunque,
pertanto pensavo di partire da quello.In ogni caso l’idea è di fare due eseguibili. Il primo, non so, bibnumord che ordini
thebibliography in ordine di citazione. L’altro, più banale, e forse inutile, bibalpord che
semplicemente ordini alfabeticamente la bibliografia secondo il cognome del primo autore.
Ovviamente in questo secondo caso è consigliato l’uso di natbib.Con python sono già un po’ pratico, era per quello che l’ho scelto. Ora valuterò per bene. Comunque vorrei fare degli eseguibili per le varie piattaforme. Quindi l’utente finale non deve avere installato nulla al contrario di quanto accade con pdfcrop per esempio.
Una soluzione LaTeX:
`\documentclass[a4paper]{article}\makeatletter
\providecommand\@namegdef[1]{\expandafter\gdef\csname#1\endcsname}
\def\ubibitem#1#2{\@namedef{unsrt@#1}{{#1}{#2}}}
\DeclareRobustCommand{\ucite}[1]{%
\@ifundefined{unsrt@#1}
{\@latex@warning{Undefined citation #1}}
{\process@cite{#1}}}
\newcounter{unsrt@cnt}
\def\process@cite#1{%
\ifcsname unsrt@done#1\endcsname
\else
\@namegdef{unsrt@done#1}{}%
\stepcounter{unsrt@cnt}%
\@namegdef{unsrt@\arabic{unsrt@cnt}}{%
\expandafter\expandafter\expandafter\bibitem\csname unsrt@#1\endcsname}%
\fi
\cite{#1}}
\def\printbibliography{%
\begin{thebibliography}{\arabic{unsrt@cnt}}
\count@=\z@
\loop\ifnum\count@<\value{unsrt@cnt} \advance\count@\@ne \@nameuse{unsrt@\number\count@} \repeat \end{thebibliography}} \makeatother \ubibitem{pippo}{Pippo, Noccioline, Topolinia 2001} \ubibitem{topolino}{Topolino, Mice, Topolinia 1935} \begin{document} Ecco Topolino~\ucite{topolino}. Ciao Pippo~\ucite{pippo}. Di nuovo Pippo~\ucite{pippo}. Non esiste~\ucite{alberto}. \printbibliography \end{document}` Non ha alcuna importanza come si inseriscono gli elementi della bibliografia, purché li si metta prima di \begin{document} (mi pare anche un buon posto). La macro \ubibitem ha due argomenti: la chiave e il testo della citazione bibliografica. Naturalmente manca tutta la parte relativa a citazioni multiple. Ciao Enrico -
9 Dicembre 2009 alle 20:18 #40125
-
21 Marzo 2010 alle 18:32 #40126::
Dopo un bel po’ di tempo mi sono rimesso a pensare alla questione
dell’ordinamento per citazione automatico in thebibliography.
(Sia ben inteso, so che l’ordinamento per citazione è da evitare.
Ribadisco però che se non si usa BibTeX per qualche motivo e ci si ritrova a dover
ordinare la bibliografia per citazione, il problema si pone.)Ho cercato di estendere il codice di Enrico ma devo studiare ancora molto.
In compenso ho realizzato un programmino in Python
che, dandogli in pasto il file principale (es. main.tex)
genera un altro file con la bibliografia ordinata in ordine di citazione (main_thebibord.tex).
Non resta che copiarla e incollarla nel documento principale al posto dell’attuale
ambiente thebibliography.Se qualcuno non ha nulla da fare e vuole provare questo programmino ecco i link:
l’eseguibile per Windows per chi non ha Python 2.5 o 2.6 o il sorgente per chi ha Python 2.5 o 2.6 installato.Uso dell’eseguibile per Windows:
`thebibord.exe main.tex`Uso del sorgente:
`python thebibord.py main.tex`[edit]
Ovviamente il codice Python è pessimo e scritto di fretta.
Non mi assumo nessuna responsabilità se danneggerà i vostri file.Altra cosa, gestisce gli input e gli include di file tex con e senza estensione.
Ha bisogno che l’ambiente thebibliography si trovi nel main.tex (ragionevole)
e gestisce la forma più generica del comando cite: \cite[. . .]{chiave1, chiave2, . . .}
[/edit]Ciao ciao.
Fra
-
21 Marzo 2010 alle 22:49 #40127::
Dopo un bel po’ di tempo mi sono rimesso a pensare alla questione
dell’ordinamento per citazione automatico in thebibliography.
(Sia ben inteso, so che l’ordinamento per citazione è da evitare.
Ribadisco però che se non si usa BibTeX per qualche motivo e ci si ritrova a dover
ordinare la bibliografia per citazione, il problema si pone.)Ho cercato di estendere il codice di Enrico ma devo studiare ancora molto.
In compenso ho realizzato un programmino in Python
che, dandogli in pasto il file principale (es. main.tex)
genera un altro file con la bibliografia ordinata in ordine di citazione (main_thebibord.tex).
Non resta che copiarla e incollarla nel documento principale al posto dell’attuale
ambiente thebibliography.Se qualcuno non ha nulla da fare e vuole provare questo programmino ecco i link:
l’eseguibile per Windows per chi non ha Python 2.5 o 2.6 o il sorgente per chi ha Python 2.5 o 2.6 installato.Uso dell’eseguibile per Windows:
`thebibord.exe main.tex`Uso del sorgente:
`python thebibord.py main.tex`[edit]
Ovviamente il codice Python è pessimo e scritto di fretta.
Non mi assumo nessuna responsabilità se danneggerà i vostri file.Altra cosa, gestisce gli input e gli include di file tex con e senza estensione.
Ha bisogno che l’ambiente thebibliography si trovi nel main.tex (ragionevole)
e gestisce la forma più generica del comando cite: \cite[. . .]{chiave1, chiave2, . . .}
[/edit]`\documentclass[a4paper]{article}
\makeatletter
\providecommand\@namegdef[1]{\expandafter\gdef\csname#1\endcsname}\def\ubibitem#1#2{\@namedef{unsrt@#1}{{#1}{#2}}}
\DeclareRobustCommand{\ucite}[2][]{%
\def\after@cite{#1}%
\@for\next@cite:=#2\do
{\expandafter\process@cite\expandafter{\next@cite}}%
\ifx\after@cite\@empty\cite{#2}\else\cite[\after@cite]{#2}\fi}\newcounter{unsrt@cnt}
\def\process@cite#1{\@ifundefined{unsrt@#1}{}{\process@onecite{#1}}}
\def\process@onecite#1{%
\ifcsname unsrt@done#1\endcsname
\else
\@namegdef{unsrt@done#1}{}%
\stepcounter{unsrt@cnt}%
\@namegdef{unsrt@\arabic{unsrt@cnt}}{%
\expandafter\expandafter\expandafter\bibitem\csname unsrt@#1\endcsname}%
\fi}\def\printbibliography{%
\begin{thebibliography}{\arabic{unsrt@cnt}}
\count@=\z@
\loop\ifnum\count@<\value{unsrt@cnt} \advance\count@\@ne \@nameuse{unsrt@\number\count@} \repeat \end{thebibliography}} \makeatother \ubibitem{pippo}{Pippo, Noccioline, Topolinia 2001} \ubibitem{topolino}{Topolino, Mice, Topolinia 1935} \begin{document} Ecco Topolino~\ucite{topolino,pippo}. Ciao Pippo~\ucite[p.~24]{pippo}. Di nuovo Pippo~\ucite{pippo}. Non esiste~\ucite{alberto}. \printbibliography \end{document}` Ciao Enrico -
22 Marzo 2010 alle 11:40 #40128
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.