Risposte nei forum create
-
AutoreRisposte
-
::
Sono riuscito a crearmi uno stile bibliografico personalizzato, che trovo “razionale” e che mi soddisfa.
Postalo, se vuoi.
Volentieri. Visto che attualmente non ho la possibilità di mettere il tutto in uno spazio Web esterno al forum, opto per un brutale “copia/incolla” – me ne scuso in anticipo. Mi piacerebbe sapere che cosa ne pensi – se hai tempo e voglia di darci un’occhiata. Il “foglio di stile” abu.bst ottenuto con makebst è il seguente.
`
%%
%% This is file `abu.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% merlin.mbs (with options: `head,exlang,ay,nat,lang,nm-init,ed-au,nmlm,x3,m1,nmft,nmft-sc,nmand-rm,keyxyr,tit-qq,qt-g,qx,bt-qq,atit-u,volp-com,pgsep-s,jwdpg,jwdvol,num-xser,pub-date,pub-xpar,pub-xc,blk-com,italian,pp,abr,xedn,jabr,and-xcom,etal-it,url,url-blk,nfss,,{}')
%% italian.mbs (with options: `exlang,ay,nat,lang,nm-init,ed-au,nmlm,x3,m1,nmft,nmft-sc,nmand-rm,keyxyr,tit-qq,qt-g,qx,bt-qq,atit-u,volp-com,pgsep-s,jwdpg,jwdvol,num-xser,pub-date,pub-xpar,pub-xc,blk-com,italian,pp,abr,xedn,jabr,and-xcom,etal-it,url,url-blk,nfss,,{}')
%% merlin.mbs (with options: `tail,exlang,ay,nat,lang,nm-init,ed-au,nmlm,x3,m1,nmft,nmft-sc,nmand-rm,keyxyr,tit-qq,qt-g,qx,bt-qq,atit-u,volp-com,pgsep-s,jwdpg,jwdvol,num-xser,pub-date,pub-xpar,pub-xc,blk-com,italian,pp,abr,xedn,jabr,and-xcom,etal-it,url,url-blk,nfss,,{}')
%% —————————————-
%% *** ***
%%
%% Copyright 1994-2004 Patrick W Daly
% ===============================================================
% IMPORTANT NOTICE:
% This bibliographic style (bst) file has been generated from one or
% more master bibliographic style (mbs) files, listed above.
%
% This generated file can be redistributed and/or modified under the terms
% of the LaTeX Project Public License Distributed from CTAN
% archives in directory macros/latex/base/lppl.txt; either
% version 1 of the License, or any later version.
% ===============================================================
% Name and version information of the main mbs file:
% \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)]
% For use with BibTeX version 0.99a or later
%——————————————————————-
% This bibliography style file is intended for texts in
% ITALIAN
% This is an author-year citation style bibliography. As such, it is
% non-standard LaTeX, and requires a special package file to function properly.
% Such a package is natbib.sty by Patrick W. Daly
% The form of the \bibitem entries is
% \bibitem[Jones et al.(1990)]{key}…
% \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}…
% The essential feature is that the label (the part in brackets) consists
% of the author names, as they should appear in the citation, with the year
% in parentheses following. There must be no space before the opening
% parenthesis!
% With natbib v5.3, a full list of authors may also follow the year.
% In natbib.sty, it is possible to define the type of enclosures that is
% really wanted (brackets or parentheses), but in either case, there must
% be parentheses in the label.
% The \cite command functions as follows:
% \citet{key} ==>> Jones et al. (1990)
% \citet*{key} ==>> Jones, Baker, and Smith (1990)
% \citep{key} ==>> (Jones et al., 1990)
% \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
% \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
% \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
% \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
% \citeauthor{key} ==>> Jones et al.
% \citeauthor*{key} ==>> Jones, Baker, and Smith
% \citeyear{key} ==>> 1990
%———————————————————————ENTRY
{ address
author
booktitle
chapter
edition
editor
eid
howpublished
institution
journal
key
language
month
note
number
organization
pages
publisher
school
series
title
type
url
volume
year
}
{}
{ label extra.label sort.label short.list }
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
}
STRINGS { s t}
FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
{ “, ” * write$ }
{ output.state after.block =
{ add.period$ write$
newline$
“\newblock ” write$
}
{ output.state before.all =
'write$
{ add.period$ ” ” * write$ }
if$
}
if$
mid.sentence 'output.state :=
}
if$
s
}
FUNCTION {output}
{ duplicate$ empty$
'pop$
'output.nonnull
if$
}
FUNCTION {output.check}
{ 't :=
duplicate$ empty$
{ pop$ “empty ” t * ” in ” * cite$ * warning$ }
'output.nonnull
if$
}
FUNCTION {fin.entry}
{ add.period$
write$
newline$
}FUNCTION {new.block}
{ output.state before.all =
'skip$
{ after.block 'output.state := }
if$
}
FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
'skip$
{ after.sentence 'output.state := }
if$
}
if$
}
FUNCTION {add.blank}
{ ” ” * before.all 'output.state :=
}FUNCTION {date.block}
{
skip$
}FUNCTION {not}
{ { #0 }
{ #1 }
if$
}
FUNCTION {and}
{ 'skip$
{ pop$ #0 }
if$
}
FUNCTION {or}
{ { pop$ #1 }
'skip$
if$
}
FUNCTION {non.stop}
{ duplicate$
“}” * add.period$
#-1 #1 substring$ “.” =
}FUNCTION {new.block.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.block
if$
}
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ “” }
'skip$
if$
}
FUNCTION {emphasize}
{ duplicate$ empty$
{ pop$ “” }
{ “\emph{” swap$ * “}” * }
if$
}
FUNCTION {scaps}
{ duplicate$ empty$
{ pop$ “” }
{ “\textsc{” swap$ * “}” * }
if$
}
FUNCTION {bib.name.font}
{ scaps }
FUNCTION {bib.fname.font}
{ bib.name.font }
FUNCTION {tie.or.space.prefix}
{ duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ } FUNCTION {capitalize} { "u" change.case$ "t" change.case$ } FUNCTION {space.word} { " " swap$ * " " * } % Here are the language-specific definitions for explicit words. % Each function has a name bbl.xxx where xxx is the English word. %------------------------------------------------------------------- % Begin module: % \ProvidesFile{italian.mbs}[2003/11/06 4.2 (PWD/GP)] % The language selected here is ITALIAN FUNCTION {bbl.and} { "e" } FUNCTION {bbl.etal} { "et~al." } FUNCTION {bbl.editors} { "curatori" } FUNCTION {bbl.editor} { "curatore" } FUNCTION {bbl.edby} { "curato da" } FUNCTION {bbl.edition} { "ed." } FUNCTION {bbl.volume} { "vol." } FUNCTION {bbl.of} { "di" } FUNCTION {bbl.number} { "no." } FUNCTION {bbl.nr} { "no." } FUNCTION {bbl.in} { "in" } FUNCTION {bbl.pages} { "pp." } FUNCTION {bbl.page} { "p." } FUNCTION {bbl.chapter} { "cap." } FUNCTION {bbl.techrep} { "Rap. Tecn." } FUNCTION {bbl.mthesis} { "Tesi di laurea" } FUNCTION {bbl.phdthesis} { "Tesi di dottorato" } MACRO {jan} {"gen."} MACRO {feb} {"feb."} MACRO {mar} {"mar."} MACRO {apr} {"apr."} MACRO {may} {"mag"} MACRO {jun} {"giu."} MACRO {jul} {"lug."} MACRO {aug} {"ago."} MACRO {sep} {"set."} MACRO {oct} {"ott."} MACRO {nov} {"nov."} MACRO {dec} {"dic."} % End module: italian.mbs %% Copyright 1994-2004 Patrick W Daly MACRO {acmcs} {"ACM Comput. Surv."} MACRO {acta} {"Acta Inf."} MACRO {cacm} {"Commun. ACM"} MACRO {ibmjrd} {"IBM J. Res. Dev."} MACRO {ibmsj} {"IBM Syst.~J."} MACRO {ieeese} {"IEEE Trans. Software Eng."} MACRO {ieeetc} {"IEEE Trans. Comput."} MACRO {ieeetcad} {"IEEE Trans. Comput. Aid. Des."} MACRO {ipl} {"Inf. Process. Lett."} MACRO {jacm} {"J.~ACM"} MACRO {jcss} {"J.~Comput. Syst. Sci."} MACRO {scp} {"Sci. Comput. Program."} MACRO {sicomp} {"SIAM J. Comput."} MACRO {tocs} {"ACM Trans. Comput. Syst."} MACRO {tods} {"ACM Trans. Database Syst."} MACRO {tog} {"ACM Trans. Graphic."} MACRO {toms} {"ACM Trans. Math. Software"} MACRO {toois} {"ACM Trans. Office Inf. Syst."} MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} MACRO {tcs} {"Theor. Comput. Sci."} FUNCTION {bibinfo.check} { swap$ duplicate$ missing$ { pop$ pop$ "" } { duplicate$ empty$ { swap$ pop$ } { swap$ pop$ } if$ } if$ } FUNCTION {bibinfo.warn} { swap$ duplicate$ missing$ { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ "" } { duplicate$ empty$ { swap$ "empty " swap$ * " in " * cite$ * warning$ } { swap$ pop$ } if$ } if$ } FUNCTION {format.url} { url empty$ { "" } { "\urlprefix\url{" url * "}" * } if$ } STRINGS { bibinfo} INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} { 'bibinfo := duplicate$ empty$ 'skip$ { 's := "" 't := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > }
{ s nameptr
“{f.~}{vv~}{ll}{, jj}”
format.name$
bib.name.font
bibinfo bibinfo.check
't :=
nameptr #1 >
{
nameptr #1
#1 + =
numnames #3
> and
{ “others” 't :=
#1 'namesleft := }
'skip$
if$
namesleft #1 >
{ “, ” * t * }
{
s nameptr “{ll}” format.name$ duplicate$ “others” =
{ 't := }
{ pop$ }
if$
t “others” =
{
” ” * bbl.etal emphasize *
}
{
bbl.and
space.word * t *
}
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 – 'namesleft :=
}
while$
} if$
}
FUNCTION {format.names.ed}
{
format.names
}
FUNCTION {format.key}
{ empty$
{ key field.or.null }
{ “” }
if$
}FUNCTION {format.authors}
{ author “author” format.names
}
FUNCTION {get.bbl.editor}
{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }FUNCTION {format.editors}
{ editor “editor” format.names duplicate$ empty$ 'skip$
{
“,” *
” ” *
get.bbl.editor
*
}
if$
}
FUNCTION {select.language}
{ duplicate$ empty$
'pop$
{ language empty$
'skip$
{ “{\selectlanguage{” language * “}” * swap$ * “}” * }
if$
}
if$
}FUNCTION {format.note}
{
note empty$
{ “” }
{ note #1 #1 substring$
duplicate$ “{” =
'skip$
{ output.state mid.sentence =
{ “l” }
{ “u” }
if$
change.case$
}
if$
note #2 global.max$ substring$ * “note” bibinfo.check
}
if$
}FUNCTION {format.title}
{ title
“title” bibinfo.check
duplicate$ empty$ 'skip$
{
“\enquote{” swap$ *
“}, ” *
select.language
}
if$
}
FUNCTION {end.quote.title}
{ title empty$
'skip$
{ before.all 'output.state := }
if$
}
FUNCTION {end.quote.btitle}
{ booktitle empty$
'skip$
{ before.all 'output.state := }
if$
}
FUNCTION {format.full.names}
{'s :=
“” 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
“{vv~}{ll}” format.name$
't :=
nameptr #1 >
{
nameptr #1
#1 + =
numnames #3
> and
{ “others” 't :=
#1 'namesleft := }
'skip$
if$
namesleft #1 >
{ “, ” * t * }
{
s nameptr “{ll}” format.name$ duplicate$ “others” =
{ 't := }
{ pop$ }
if$
t “others” =
{
” ” * bbl.etal emphasize *
}
{
bbl.and
space.word * t *
}
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 – 'namesleft :=
}
while$
}FUNCTION {author.editor.key.full}
{ author empty$
{ editor empty$
{ key empty$
{ cite$ #1 #3 substring$ }
'key
if$
}
{ editor format.full.names }
if$
}
{ author format.full.names }
if$
}FUNCTION {author.key.full}
{ author empty$
{ key empty$
{ cite$ #1 #3 substring$ }
'key
if$
}
{ author format.full.names }
if$
}FUNCTION {editor.key.full}
{ editor empty$
{ key empty$
{ cite$ #1 #3 substring$ }
'key
if$
}
{ editor format.full.names }
if$
}FUNCTION {make.full.names}
{ type$ “book” =
type$ “inbook” =
or
'author.editor.key.full
{ type$ “proceedings” =
'editor.key.full
'author.key.full
if$
}
if$
}FUNCTION {output.bibitem}
{ newline$
“\bibitem[{” write$
label write$
“)” make.full.names duplicate$ short.list =
{ pop$ }
{ * }
if$
“}]{” * write$
cite$ write$
“}” write$
newline$
“”
before.all 'output.state :=
}FUNCTION {if.digit}
{ duplicate$ “0” =
swap$ duplicate$ “1” =
swap$ duplicate$ “2” =
swap$ duplicate$ “3” =
swap$ duplicate$ “4” =
swap$ duplicate$ “5” =
swap$ duplicate$ “6” =
swap$ duplicate$ “7” =
swap$ duplicate$ “8” =
swap$ “9” = or or or or or or or or or
}
FUNCTION {n.separate}
{ 't :=
“”
#0 'numnames :=
{ t empty$ not }
{ t #-1 #1 substring$ if.digit
{ numnames #1 + 'numnames := }
{ #0 'numnames := }
if$
t #-1 #1 substring$ swap$ *
t #-2 global.max$ substring$ 't :=
numnames #5 =
{ duplicate$ #1 #2 substring$ swap$
#3 global.max$ substring$
“\,” swap$ * *
}
'skip$
if$
}
while$
}
FUNCTION {n.dashify}
{
n.separate
't :=
“”
{ t empty$ not }
{ t #1 #1 substring$ “-” =
{ t #1 #2 substring$ “–” = not
{ “–” *
t #2 global.max$ substring$ 't :=
}
{ { t #1 #1 substring$ “-” = }
{ “-” *
t #2 global.max$ substring$ 't :=
}
while$
}
if$
}
{ t #1 #1 substring$ *
t #2 global.max$ substring$ 't :=
}
if$
}
while$
}FUNCTION {word.in}
{ bbl.in
” ” * }FUNCTION {format.date}
{ year “year” bibinfo.check duplicate$ empty$
{
“empty year in ” cite$ * “; set to ????” * warning$
pop$ “????”
}
'skip$
if$
extra.label *
}
FUNCTION {format.btitle}
{ title “title” bibinfo.check
duplicate$ empty$ 'skip$
{
emphasize
select.language
}
if$
}
FUNCTION {either.or.check}
{ empty$
'pop$
{ “can't use both ” swap$ * ” fields in ” * cite$ * warning$ }
if$
}
FUNCTION {format.bvolume}
{ volume empty$
{ “” }
{ bbl.volume volume tie.or.space.prefix
“volume” bibinfo.check * *
series “series” bibinfo.check
duplicate$ empty$ 'pop$
{ swap$ bbl.of space.word * swap$
emphasize * }
if$
“volume and number” number either.or.check
}
if$
}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
{ series field.or.null }
{ series empty$
{ number “number” bibinfo.check }
{ output.state mid.sentence =
{ bbl.number }
{ bbl.number capitalize }
if$
number tie.or.space.prefix “number” bibinfo.check * *
bbl.in space.word *
series “series” bibinfo.check *
}
if$
}
if$
}
{ “” }
if$
}FUNCTION {format.edition}
{ edition duplicate$ empty$ 'skip$
{
output.state mid.sentence =
{ “l” }
{ “t” }
if$ change.case$
“edition” bibinfo.check
” ” * bbl.edition *
}
if$
}
INTEGERS { multiresult }
FUNCTION {multi.page.check}
{ 't :=
#0 'multiresult :=
{ multiresult not
t empty$ not
and
}
{ t #1 #1 substring$
duplicate$ “-” =
swap$ duplicate$ “,” =
swap$ “+” =
or or
{ #1 'multiresult := }
{ t #2 global.max$ substring$ 't := }
if$
}
while$
multiresult
}
FUNCTION {format.pages}
{ pages duplicate$ empty$ 'skip$
{ duplicate$ multi.page.check
{
bbl.pages swap$
n.dashify
}
{
bbl.page swap$
}
if$
tie.or.space.prefix
“pages” bibinfo.check
* *
}
if$
}
FUNCTION {format.journal.pages}
{ pages duplicate$ empty$ 'pop$
{ swap$ duplicate$ empty$
{ pop$ pop$ format.pages }
{
“, ” *
swap$
n.dashify
pages multi.page.check
'bbl.pages
'bbl.page
if$
swap$ tie.or.space.prefix
“pages” bibinfo.check
* *
*
}
if$
}
if$
}
FUNCTION {format.journal.eid}
{ eid “eid” bibinfo.check
duplicate$ empty$ 'pop$
{ swap$ duplicate$ empty$ 'skip$
{
“, ” *
}
if$
swap$ *
}
if$
}
FUNCTION {format.vol.num.pages}
{ volume field.or.null
duplicate$ empty$ 'skip$
{
bbl.volume swap$ tie.or.space.prefix
“volume” bibinfo.check
* *
}
if$
number “number” bibinfo.check duplicate$ empty$ 'skip$
{
swap$ duplicate$ empty$
{ “there's a number but no volume in ” cite$ * warning$ }
'skip$
if$
swap$
“(” swap$ * “)” *
}
if$ *
eid empty$
{ format.journal.pages }
{ format.journal.eid }
if$
}FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
{ bbl.chapter }
{ type “l” change.case$
“type” bibinfo.check
}
if$
chapter tie.or.space.prefix
“chapter” bibinfo.check
* *
pages empty$
'skip$
{ “, ” * format.pages * }
if$
}
if$
}FUNCTION {bt.enquote}
{ duplicate$ empty$ 'skip$
{ “\enquote{” swap$ *
“}, ” *
}
if$
}
FUNCTION {format.booktitle}
{
booktitle “booktitle” bibinfo.check
bt.enquote
}
FUNCTION {format.in.ed.booktitle}
{ format.booktitle duplicate$ empty$ 'skip$
{
editor “editor” format.names.ed duplicate$ empty$ 'pop$
{
“,” *
” ” *
get.bbl.editor
“, ” *
* swap$
* }
if$
word.in swap$ *
}
if$
}
FUNCTION {format.thesis.type}
{ type duplicate$ empty$
'pop$
{ swap$ pop$
“t” change.case$ “type” bibinfo.check
}
if$
}
FUNCTION {format.tr.number}
{ number “number” bibinfo.check
type duplicate$ empty$
{ pop$ bbl.techrep }
'skip$
if$
“type” bibinfo.check
swap$ duplicate$ empty$
{ pop$ “t” change.case$ }
{ tie.or.space.prefix * * }
if$
}
FUNCTION {format.article.crossref}
{
word.in
” \cite{” * crossref * “}” *
}
FUNCTION {format.book.crossref}
{ volume duplicate$ empty$
{ “empty volume in ” cite$ * “'s crossref of ” * crossref * warning$
pop$ word.in
}
{ bbl.volume
swap$ tie.or.space.prefix “volume” bibinfo.check * * bbl.of space.word *
}
if$
” \cite{” * crossref * “}” *
}
FUNCTION {format.incoll.inproc.crossref}
{
word.in
” \cite{” * crossref * “}” *
}
FUNCTION {format.org.or.pub}
{ 't :=
“”
t empty$
{ address “address” bibinfo.check *
}
{ t *
address empty$
'skip$
{ “, ” * address “address” bibinfo.check * }
if$
}
if$
year duplicate$ empty$
{ “empty year in ” cite$ * “; set to ????” * warning$
pop$ “????” }
{ “year” bibinfo.check extra.label * }
if$
t empty$ address empty$ and
{ * }
{ ” ” swap$ * * }
if$
}
FUNCTION {format.publisher.address}
{ publisher “publisher” bibinfo.warn format.org.or.pub
}FUNCTION {format.organization.address}
{ organization “organization” bibinfo.check format.org.or.pub
}FUNCTION {article}
{ output.bibitem
format.authors “author” output.check
author format.key output
format.title “title” output.check
end.quote.title
crossref missing$
{
journal
“journal” bibinfo.check
emphasize
“journal” output.check
format.vol.num.pages output
format.date “year” output.check
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
format.url output
format.note output
fin.entry
}
FUNCTION {book}
{ output.bibitem
author empty$
{ format.editors “author and editor” output.check
editor format.key output
}
{ format.authors output.nonnull
crossref missing$
{ “author and editor” editor either.or.check }
'skip$
if$
}
if$
format.btitle “title” output.check
crossref missing$
{ format.bvolume output
format.number.series output
format.publisher.address output
}
{
format.book.crossref output.nonnull
format.date “year” output.check
}
if$
format.edition output
format.url output
format.note output
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
format.authors output
author format.key output
format.title “title” output.check
end.quote.title
howpublished “howpublished” bibinfo.check output
address “address” bibinfo.check output
format.date “year” output.check
format.url output
format.note output
fin.entry
}FUNCTION {inbook}
{ output.bibitem
author empty$
{ format.editors “author and editor” output.check
editor format.key output
}
{ format.authors output.nonnull
crossref missing$
{ “author and editor” editor either.or.check }
'skip$
if$
}
if$
format.btitle “title” output.check
crossref missing$
{
format.bvolume output
format.chapter.pages “chapter and pages” output.check
format.number.series output
format.publisher.address output
}
{
format.chapter.pages “chapter and pages” output.check
format.book.crossref output.nonnull
format.date “year” output.check
}
if$
format.edition output
format.url output
format.note output
fin.entry
}FUNCTION {incollection}
{ output.bibitem
format.authors “author” output.check
author format.key output
format.title “title” output.check
end.quote.title
crossref missing$
{ format.in.ed.booktitle “booktitle” output.check
end.quote.btitle
format.bvolume output
format.number.series output
format.chapter.pages output
format.publisher.address output
format.edition output
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
format.url output
format.note output
fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
format.authors “author” output.check
author format.key output
format.title “title” output.check
end.quote.title
crossref missing$
{ format.in.ed.booktitle “booktitle” output.check
end.quote.btitle
format.bvolume output
format.number.series output
format.pages output
publisher empty$
{ format.organization.address output }
{ organization “organization” bibinfo.check output
format.publisher.address output
}
if$
}
{ format.incoll.inproc.crossref output.nonnull
format.pages output
}
if$
format.url output
format.note output
fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
format.authors output
author format.key output
format.btitle “title” output.check
organization “organization” bibinfo.check output
address “address” bibinfo.check output
format.edition output
format.date “year” output.check
format.url output
format.note output
fin.entry
}FUNCTION {mastersthesis}
{ output.bibitem
format.authors “author” output.check
author format.key output
format.btitle
“title” output.check
bbl.mthesis format.thesis.type output.nonnull
school “school” bibinfo.warn output
address “address” bibinfo.check output
format.date “year” output.check
format.url output
format.note output
fin.entry
}FUNCTION {misc}
{ output.bibitem
format.authors output
author format.key output
format.title output
end.quote.title
howpublished “howpublished” bibinfo.check output
format.date “year” output.check
format.url output
format.note output
fin.entry
}
FUNCTION {phdthesis}
{ output.bibitem
format.authors “author” output.check
author format.key output
format.btitle
“title” output.check
bbl.phdthesis format.thesis.type output.nonnull
school “school” bibinfo.warn output
address “address” bibinfo.check output
format.date “year” output.check
format.url output
format.note output
fin.entry
}FUNCTION {proceedings}
{ output.bibitem
format.editors output
editor format.key output
format.btitle “title” output.check
format.bvolume output
format.number.series output
publisher empty$
{ format.organization.address output }
{ organization “organization” bibinfo.check output
format.publisher.address output
}
if$
format.url output
format.note output
fin.entry
}FUNCTION {techreport}
{ output.bibitem
format.authors “author” output.check
author format.key output
format.title
“title” output.check
end.quote.title
format.tr.number output.nonnull
institution “institution” bibinfo.warn output
address “address” bibinfo.check output
format.date “year” output.check
format.url output
format.note output
fin.entry
}FUNCTION {unpublished}
{ output.bibitem
format.authors “author” output.check
author format.key output
format.title “title” output.check
end.quote.title
format.date “year” output.check
format.url output
format.note “note” output.check
fin.entry
}FUNCTION {default.type} { misc }
READ
FUNCTION {sortify}
{ purify$
“l” change.case$
}
INTEGERS { len }
FUNCTION {chop.word}
{ 's :=
'len :=
s #1 len substring$ =
{ s len #1 + global.max$ substring$ }
's
if$
}
FUNCTION {format.lab.names}
{ 's :=
“” 't :=
s #1 “{vv~}{ll}” format.name$
s num.names$ duplicate$
#2 >
{ pop$
” ” * bbl.etal emphasize *
}
{ #2 < 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " " * bbl.etal emphasize * } { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ * } if$ } if$ } if$ } FUNCTION {author.key.label} { author empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { author format.lab.names } if$ } FUNCTION {author.editor.key.label} { author empty$ { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.lab.names } if$ } { author format.lab.names } if$ } FUNCTION {editor.key.label} { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.lab.names } if$ } FUNCTION {calc.short.authors} { type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.label 'author.key.label if$ } if$ 'short.list := } FUNCTION {calc.label} { calc.short.authors short.list "(" * year duplicate$ empty$ short.list key field.or.null = or { pop$ "" } { purify$ #-1 #4 substring$ } if$ * 'label := } FUNCTION {sort.format.names} { 's := #1 'nameptr := "" s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > }
{ s nameptr
“{vv{ } }{ll{ }}{ f{ }}{ jj{ }}”
format.name$ 't :=
nameptr #1 >
{
nameptr #1
#1 + =
numnames #3
> and
{ “others” 't :=
#1 'namesleft := }
'skip$
if$
” ” *
namesleft #1 = t “others” = and
{ “zzzzz” * }
{ t sortify * }
if$
}
{ t sortify * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 – 'namesleft :=
}
while$
}FUNCTION {sort.format.title}
{ 't :=
“A ” #2
“An ” #3
“The ” #4 t chop.word
chop.word
chop.word
sortify
#1 global.max$ substring$
}
FUNCTION {author.sort}
{ author empty$
{ key empty$
{ “to sort, need author or key in ” cite$ * warning$
“”
}
{ key sortify }
if$
}
{ author sort.format.names }
if$
}
FUNCTION {author.editor.sort}
{ author empty$
{ editor empty$
{ key empty$
{ “to sort, need author, editor, or key in ” cite$ * warning$
“”
}
{ key sortify }
if$
}
{ editor sort.format.names }
if$
}
{ author sort.format.names }
if$
}
FUNCTION {editor.sort}
{ editor empty$
{ key empty$
{ “to sort, need editor or key in ” cite$ * warning$
“”
}
{ key sortify }
if$
}
{ editor sort.format.names }
if$
}
FUNCTION {presort}
{ calc.label
label sortify
” ”
*
type$ “book” =
type$ “inbook” =
or
'author.editor.sort
{ type$ “proceedings” =
'editor.sort
'author.sort
if$
}
if$
#1 entry.max$ substring$
'sort.label :=
sort.label
*
” ”
*
title field.or.null
sort.format.title
*
#1 entry.max$ substring$
'sort.key$ :=
}ITERATE {presort}
SORT
STRINGS { last.label next.extra }
INTEGERS { last.extra.num number.label }
FUNCTION {initialize.extra.label.stuff}
{ #0 int.to.chr$ 'last.label :=
“” 'next.extra :=
#0 'last.extra.num :=
#0 'number.label :=
}
FUNCTION {forward.pass}
{ last.label label =
{ last.extra.num #1 + 'last.extra.num :=
last.extra.num int.to.chr$ 'extra.label :=
}
{ “a” chr.to.int$ 'last.extra.num :=
“” 'extra.label :=
label 'last.label :=
}
if$
number.label #1 + 'number.label :=
}
FUNCTION {reverse.pass}
{ next.extra “b” =
{ “a” 'extra.label := }
'skip$
if$
extra.label 'next.extra :=
extra.label
duplicate$ empty$
'skip$
{ “{\natexlab{” swap$ * “}}” * }
if$
'extra.label :=
label extra.label * 'label :=
}
EXECUTE {initialize.extra.label.stuff}
ITERATE {forward.pass}
REVERSE {reverse.pass}
FUNCTION {bib.sort.order}
{ sort.label
” ”
*
year field.or.null sortify
*
” ”
*
title field.or.null
sort.format.title
*
#1 entry.max$ substring$
'sort.key$ :=
}
ITERATE {bib.sort.order}
SORT
FUNCTION {begin.bib}
{ preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
“\begin{thebibliography}{” number.label int.to.str$ * “}” *
write$ newline$
“\ProvideTextCommand{\guillemotleft}{OT1}{%”
write$ newline$
” \leavevmode\raise .27ex\hbox{$\scriptscriptstyle\ll$}}”
write$ newline$
“\ProvideTextCommand{\guillemotright}{OT1}{%”
write$ newline$
” \leavevmode\raise .27ex\hbox{$\scriptscriptstyle\gg$}}”
write$ newline$
“\newcommand{\enquote}[1]{\guillemotleft#1\guillemotright}”
write$ newline$
“\providecommand{\natexlab}[1]{#1}”
write$ newline$
“\providecommand{\url}[1]{\texttt{#1}}”
write$ newline$
“\providecommand{\urlprefix}{URL }”
write$ newline$
“\providecommand{\selectlanguage}[1]{\relax}”
write$ newline$
}
EXECUTE {begin.bib}
EXECUTE {init.state.consts}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
“\end{thebibliography}” write$ newline$
}
EXECUTE {end.bib}
%% End of customized bst file
%%
%% End of file `abu.bst'.
`
::]
La convenzione sul corsivo delle parole straniere (oltre al fatto di riguardare solo quelle “non di uso comune”) è perfettamente compatibile con l’uso delle virgolette. L’unica regola (questa sì piuttosto fissa) è che non si usa mai corsivo e virgolette assieme, cioè una frase in corsivo dentro alle virgolette. Sia corsivo che virgolette servono a “staccare” l’espressione dal resto del testo (per vari motivi, uno dei quali che l’espressione stessa è straniera, per esempio): se questo viene già fatto dalle virgolette, non c’è bisogno del corsivo.Capisco. Quindi, ricapitolando -se ho capito bene:
1. per i libri, titolo in corsivo e casa editrice in tondo;
2. per gli articoli, titolo fra virgolette e in tondo -indipendentemente dalla lingua- e rivista in corsivo.Se è così, grazie ai tuoi consigli, a quelli dello Staff in passati thread e al meraviglioso makebst sono riuscito a crearmi uno stile bibliografico personalizzato, che trovo “razionale” e che mi soddisfa.
Grazie ancora,
L.P.S. Veramente notevole il “tridente” BibTeX + natbib + makebst…
Osservo che nelle pagine del sito di GuIT sulla bibliografia viene esplicitamente menzionato lo stile natbib_ita -che credevo fosse in qualche modo “caldeggiato” dallo Staff- ma che in fin dei conti non è questo gran che…Ora, visto che makebst è abbastanza facile, ma non è banale (soprattutto per un neofita), non sarebbe male che qualcuno dello Staff mettesse a disposizione la sua esperienza per creare un paio di stili già belli e pronti, senza le discrasie e i limti di natbib_ita, adatti a tesisti italiani…
Questione di un attimo, per utenti esperti, ma per il principiante non è banale destreggiarsi tra tutte le domande di makebst e dare le risposte più “adatte”…
L.
::In italiano, uno standard è: autore in tondo, titolo fra virgolette (tipicamente caporali), rivista in corsivo. Ha il vantaggio è distinguere immediatamente libri, il cui titolo va in corsivo, da articoli.
Capisco. Certo, ribadisco che mettere il titolo fra caporali in tondo ha l’inconveniente che, se il titolo è in lingua straniera (in una bibliografia capita spesso di avere articoli sia italiani sia inglesi, per esempio), si viola la convenzione (che uso sempre) di mettere in corsivo tutte le parole e le frasi “straniere”, ma tutto sommato penso che il vantaggio dello standard che mi suggerisci (e che del resto makebst prevede) valga la candela.
Grazie per le tue osservazioni sempre precise e puntuali, annoverami fra i futuri lettori del tuo lavoro.
L.
::Dipende da quello che vuoi ottenere. Personalmente preferirei metterlo in nota, tuttavia molto dipende da che stile ti sei costruito con makebst e da come formatti il titolo. Se ad esempio fai il titolo in plain font non ci sono grandi problemi ad inserire dentro il curatore. Fossi in te mi prenderei un buon libro che usa le citazioni di questo tipo e guarderei come hanno risolto loro.
Visto che metto il titolo dei libri rigorosamente in corsivo, opto per la nota. Per il resto, il problema del curatore ogni libro lo risolve un po’ a modo proprio. In generale, mi sono reso conto che di formati bibliograifici ce ne sono veramente tantissimi…
Grazie di cuore,
L.
::Io mi guarderei gli stili standard (plain, ecc.) e mi farei un’idea con quelli.
Ottimo suggerimento. Dunque, gli stili plain, plainnat e natbib pongono il titolo in tondo e il nome della rivista in corsivo. Lo stile amsplain fa il contrario: pone in corsivo il titiolo e in tondo la rivista. Nessuno usa virgolette. Tutti hanno l’abitudine (per me incomprensibile) di mettere il nome del titolo tutto in minuscolo. Boh.
Quello che non mi convince è che mettere in tondo il titolo fa sì che -se questo è in lingua straniera- venga meno la convenzione, che uso sempre, di mettere in corsivo le parole straniere. Idem se si mette in tondo la rivista.
Mettere tutto in corsivo è forse un po’ troppo: il corsivo lo si usa per evidenziare ed evidenziare tutto = non evidenziare niente.
Tutto sommato, amsplain è quello che mi dispiace di meno.
Grazie e… se hai altri suggerimenti, ben vangano!
L.
::I file .bst da me vanno piazzati in $TEXMF/bibtex/bst/ e in una sottocartella con il nome dello stile installato. La mia è una distribuzione teTeX.
Grazie Emiliano, hai perfettamnete ragione. Ora lavoro con i-TeX per MacOS e il tuo consiglio funziona perfettamente. Credo che la distribuzione i-TeX sia una distro teTeX a tutti gli effetti, con un set di pacchetti e tool molto completo…
Grazie ancora a te e a Lapo.
L.
::a me funziona anche sotto winzoz e miktex, avendo cura appunto di non mettere spazi nel percorso.
Ciao a tutti.
Innanzitutto mi scuso per il tremendo ritardo con cui ripondo alle… risposte di Gus, Enrico e Fabiano. 😳
In questi giorni ho lavorato sulle mie bibliografie e ne ho approfittato per reinstallare le mie distribuzioni di LaTeX. Devo aver fatto un (bel) po’ di confusione, perché adesso il problema che lamentavo non si presenta più… non so se dipendeva da un errore nel file .bib o nella distro di TeX… Avevate dunque perfettamente ragione, dipende dagli spazi nel nome del path. 😳
[O.T.] Certo, non è bello che uno non possa scegliersi il path che vuole lui, e ‘sta cosa di avere problemi se c’è uno spazio nel nome del path la trovo terribilmente anni Settanta…. ma tant’è, non è certo “colpa” di LaTeX, ma di Windows e di Unix. Per la cronaca, l’unco OS del mondo che non faceva affidamento sul nome di file e cartele era il MacOS classico fino alla versione 9.2. Questa caratteristca si è persa nel nuovo MacOS X, di derivazione Unix.
Buone feste e… grazie ancora ad Enrico, Gus e Fabiano per i suggerimenti precisi e pronti come sempre!
L.
::L’idea potrebbe essere quella di aggiungere un percorso personale a quello in cui vengono cercati i files di MiKTeX, un po’ come succede per c:\localtexmf oppure c:\texmf. Puoi creare una cartella con il tuo file .bib, configurare MiKTeX perché cerchi anche in quella cartella e fare un refresh del database dei pacchetti. In quel modo, potresti richiamare il file .bib alla stregua di un file .sty, senza indicarne il percorso.
Hai provato il mio suggerimento?
Francamente non sono riuscito a “configurare MiKTeX perché cerchi anche in quella cartella”… si vede che più invecchio più divento ottuso… 🙄
D’altra parte, resta il mistero di come mai non basti indicare il path, anche senza spazi, anche con le virgolette, anche su MacOS, per far sì che LaTeX veda il file della bibliografia…
😯 😥 😯
Grazie lo stesso…
L.
::
Ciao, anch’io avevo il problema di centrare l’immagine di sfondo rispetto al testo e non alla pagina. C’è un topic al riguardo dove viene riportata la soluzione, cerca sul forum. Per quanto riguarda le righe bianche, penso che dipenda dal fatto che visualizzi il DVI, se usi il PDF non succede.L.
::Apri un terminale e prova a scriverci “tex makebst”. L’autore di questa meraviglia è Patrick W. Daly, lo stesso di natbib. Il file bst ottenuto può essere compatibile con natbib, basta sceglierlo in una delle prime domande.
…
Condivido [le critiche allo stile bibliografico natbib]. Ma, purtroppo, spesso occorre fare i conti con lo stile (brutto) imposto dalle riviste.Con makebst puoi modificare tutte queste cose. Inoltre rinuncerei ad usare uno stile in italiano a meno che non sia strettamente necessario. Il motivo è contenuto nel tuo messaggio: natbib_ita non è del tutto soddisfacente.
Sono contento e “rassicurato” che le mie riserve sullo stile bibliografico natbib_ita siano condivise da Enrico e Lapo… Proverò senz’altro con makebst e vi terrò aggiornati.
Grazie ancora,
L.
-
AutoreRisposte