1 %% Fichier adapté de jfm.bst, la feuille de style bibliographique
2 %% du Journal of Fluid Mechanics, par E. Plaut ;
3 %% la modification faite permet de garder des majuscules dans le titre d'une
4 %% publi ; en effet avec jfm.bst
5 %% « Low Prandtl number convection »
7 %% « Low prandtl number convection »...
10 %% ----------------------------------------
11 %% *** JFM basic style ***
13 %-------------------------------------------------------------------
16 % This file may be used for non-profit purposes.
17 % It may not be distributed in exchange for money,
18 % other than distribution costs.
20 % The author provides it `as is' and does not guarantee it in any way.
22 % Copyright (C) 1994-97 Patrick W. Daly
23 % (C) 1997 Stefan G. Llewellyn Smith
24 %-------------------------------------------------------------------
25 % For use with BibTeX version 0.99a or later
26 %-------------------------------------------------------------------
27 % This bibliography style file is intended for texts in ENGLISH
28 % This is an author-year citation style bibliography. As such, it is
29 % non-standard LaTeX, and requires a special package file to function properly.
30 % Such a package is natbib.sty by Patrick W. Daly
31 % The form of the \bibitem entries is
32 % \bibitem[Jones et al.(1990)]{key}...
33 % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
34 % The essential feature is that the label (the part in brackets) consists
35 % of the author names, as they should appear in the citation, with the year
36 % in parentheses following. There must be no space before the opening
38 % With natbib v5.3, a full list of authors may also follow the year.
39 % In natbib.sty, it is possible to define the type of enclosures that is
40 % really wanted (brackets or parentheses), but in either case, there must
41 % be parentheses in the label.
42 % The \cite command functions as follows:
43 % \cite{key} ==>> Jones et al. (1990)
44 % \cite[]{key} ==>> (Jones et al., 1990)
45 % \cite[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
46 % \cite[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
47 % \cite[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
48 % \citeauthor{key} Jones et al.
49 % \citefullauthor{key} Jones, Baker, and Smith
51 %---------------------------------------------------------------------
78 { label extra.label sort.label short.list }
80 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
82 FUNCTION {init.state.consts}
91 FUNCTION {output.nonnull}
93 output.state mid.sentence =
95 { output.state after.block =
100 { output.state before.all =
102 { add.period$ " " * write$ }
106 mid.sentence 'output.state :=
119 FUNCTION {output.check}
122 { pop$ "empty " t * " in " * cite$ * warning$ }
134 { output.state before.all =
136 { after.block 'output.state := }
140 FUNCTION {new.sentence}
141 { output.state after.block =
143 { output.state before.all =
145 { after.sentence 'output.state := }
152 { " " * before.all 'output.state :=
155 FUNCTION {date.block}
178 FUNCTION {new.block.checkb}
187 FUNCTION {field.or.null}
197 { "{\em " swap$ * "\/}" * }
204 { "{\bf " swap$ * "}" * }
211 { "{\sc " swap$ * "}" * }
215 FUNCTION {capitalize}
218 FUNCTION {space.word}
219 { " " swap$ * " " * }
221 % Here are the language-specific definitions for explicit words.
222 % Each function has a name bbl.xxx where xxx is the English word.
223 % The language selected here is ENGLISH
227 FUNCTION {bbl.editors}
230 FUNCTION {bbl.editor}
236 FUNCTION {bbl.edition}
239 FUNCTION {bbl.volume}
245 FUNCTION {bbl.number}
260 FUNCTION {bbl.chapter}
263 FUNCTION {bbl.techrep}
266 FUNCTION {bbl.mthesis}
267 { "Master's thesis" }
269 FUNCTION {bbl.phdthesis}
275 FUNCTION {bbl.second}
281 FUNCTION {bbl.fourth}
324 { duplicate$ "1" swap$ *
325 #-2 #1 substring$ "1" =
327 { duplicate$ #-1 #1 substring$
344 MACRO {acmcs} {"ACM Computing Surveys"}
346 MACRO {acta} {"Acta Informatica"}
348 MACRO {cacm} {"Communications of the ACM"}
350 MACRO {ibmjrd} {"IBM Journal of Research and Development"}
352 MACRO {ibmsj} {"IBM Systems Journal"}
354 MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
356 MACRO {ieeetc} {"IEEE Transactions on Computers"}
359 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
361 MACRO {ipl} {"Information Processing Letters"}
363 MACRO {jacm} {"Journal of the ACM"}
365 MACRO {jcss} {"Journal of Computer and System Sciences"}
367 MACRO {scp} {"Science of Computer Programming"}
369 MACRO {sicomp} {"SIAM Journal on Computing"}
371 MACRO {tocs} {"ACM Transactions on Computer Systems"}
373 MACRO {tods} {"ACM Transactions on Database Systems"}
375 MACRO {tog} {"ACM Transactions on Graphics"}
377 MACRO {toms} {"ACM Transactions on Mathematical Software"}
379 MACRO {toois} {"ACM Transactions on Office Information Systems"}
381 MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
383 MACRO {tcs} {"Theoretical Computer Science"}
385 INTEGERS { nameptr namesleft numnames }
387 FUNCTION {format.names}
390 s num.names$ 'numnames :=
391 numnames 'namesleft :=
394 "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
401 { " " * "et~al." emphasize * }
409 nameptr #1 + 'nameptr :=
410 namesleft #1 - 'namesleft :=
415 FUNCTION {format.names.ed}
418 s num.names$ 'numnames :=
419 numnames 'namesleft :=
422 "{f.~}{vv~}{ll}{, jj}"
430 { " " * "et~al." emphasize * }
438 nameptr #1 + 'nameptr :=
439 namesleft #1 - 'namesleft :=
444 FUNCTION {format.key}
446 { key field.or.null }
451 FUNCTION {format.authors}
455 author format.names scaps
460 FUNCTION {format.editors}
464 editor format.names scaps
465 editor num.names$ #1 >
466 { ", " * bbl.editors * }
467 { ", " * bbl.editor * }
473 FUNCTION {format.in.editors}
476 { editor format.names.ed
481 FUNCTION {format.note}
484 { note #1 #1 substring$
487 { output.state mid.sentence =
494 note #2 global.max$ substring$ *
499 FUNCTION {format.title}
502 FUNCTION {format.full.names}
505 s num.names$ 'numnames :=
506 numnames 'namesleft :=
509 "{vv~}{ll}" format.name$ 't :=
516 { " " * "et~al." emphasize * }
524 nameptr #1 + 'nameptr :=
525 namesleft #1 - 'namesleft :=
530 FUNCTION {author.editor.key.full}
534 { cite$ #1 #3 substring$ }
538 { editor format.full.names }
541 { author format.full.names }
545 FUNCTION {author.key.full}
548 { cite$ #1 #3 substring$ }
552 { author format.full.names }
556 FUNCTION {editor.key.full}
559 { cite$ #1 #3 substring$ }
563 { editor format.full.names }
567 FUNCTION {make.full.names}
571 'author.editor.key.full
572 { type$ "proceedings" =
580 FUNCTION {output.bibitem}
584 ")" make.full.names duplicate$ short.list =
593 before.all 'output.state :=
600 { t #1 #1 substring$ "-" =
601 { t #1 #2 substring$ "--" = not
603 t #2 global.max$ substring$ 't :=
605 { { t #1 #1 substring$ "-" = }
607 t #2 global.max$ substring$ 't :=
613 { t #1 #1 substring$ *
614 t #2 global.max$ substring$ 't :=
625 FUNCTION {format.date}
626 { year duplicate$ empty$
627 { "empty year in " cite$ * "; set to ????" * warning$
632 before.all 'output.state :=
636 FUNCTION {format.btitle}
640 FUNCTION {tie.or.space.connect}
641 { duplicate$ text.length$ #3 <
648 FUNCTION {either.or.check}
651 { "can't use both " swap$ * " fields in " * cite$ * warning$ }
655 FUNCTION {format.bvolume}
664 swap$ bbl.volume volume tie.or.space.connect output
670 % { bbl.volume volume tie.or.space.connect
673 % { bbl.of space.word * series emphasize * }
675 % "volume and number" number either.or.check
680 FUNCTION {format.number.series}
688 { "there's a number but no series in " cite$ * warning$ }
691 { series emphasize " " * number *}
699 % { series field.or.null }
700 % { output.state mid.sentence =
702 % { bbl.number capitalize }
704 % number tie.or.space.connect
706 % { "there's a number but no series in " cite$ * warning$ }
707 % { bbl.in space.word * series * }
718 duplicate$ "0" chr.to.int$ < not
719 swap$ "9" chr.to.int$ > not and
722 FUNCTION {extract.num}
727 t #2 global.max$ substring$ 't :=
740 FUNCTION {convert.edition}
741 { edition extract.num "l" change.case$ 's :=
742 s "first" = s "1" = or
744 { s "second" = s "2" = or
746 { s "third" = s "3" = or
748 { s "fourth" = s "4" = or
750 { s "fifth" = s "5" = or
752 { s #1 #1 substring$ is.num
769 FUNCTION {format.edition}
772 { output.state mid.sentence =
773 { convert.edition "l" change.case$ " " * bbl.edition * }
774 { convert.edition "t" change.case$ " " * bbl.edition * }
780 INTEGERS { multiresult }
782 FUNCTION {multi.page.check}
791 swap$ duplicate$ "," =
794 { #1 'multiresult := }
795 { t #2 global.max$ substring$ 't := }
802 FUNCTION {format.pages}
805 { pages multi.page.check
806 { bbl.pages pages n.dashify tie.or.space.connect }
807 { bbl.page pages tie.or.space.connect }
813 FUNCTION {format.journal.pages}
818 { pop$ format.pages }
819 { ", " * pages n.dashify * }
825 FUNCTION {format.vol.num.pages}
826 { volume field.or.null
831 "~(" number * ")" * *
833 { "there's a number but no volume in " cite$ * warning$ }
841 FUNCTION {format.chapter.pages}
846 { type "l" change.case$ }
848 chapter tie.or.space.connect
851 { ", " * format.pages * }
857 FUNCTION {format.in.ed.booktitle}
858 % Changed to get edition after booktitle (SGLS)
862 { word.in booktitle emphasize *
865 { swap$ format.edition output }
870 editor num.names$ #1 >
884 FUNCTION {format.thesis.type}
888 type "t" change.case$
893 FUNCTION {format.tr.number}
895 { bbl.techrep emphasize }
900 { number tie.or.space.connect }
904 FUNCTION {format.article.crossref}
907 " \cite{" * crossref * "}" *
910 FUNCTION {format.book.crossref}
912 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
915 { bbl.volume capitalize
916 volume tie.or.space.connect
920 " \cite{" * crossref * "}" *
923 FUNCTION {format.incoll.inproc.crossref}
926 " \cite{" * crossref * "}" *
929 FUNCTION {format.publisher}
931 { "empty publisher in " cite$ * warning$ }
935 address empty$ publisher empty$ and
958 format.authors "author" output.check
959 author format.key output
960 format.date "year" output.check
962 format.title "title" output.check
967 "journal" output.check
969 format.vol.num.pages output
971 { format.article.crossref output.nonnull
982 { format.editors "author and editor" output.check
983 editor format.key output
985 { format.authors output.nonnull
987 { "author and editor" editor either.or.check }
992 format.date "year" output.check
994 format.btitle "title" output.check
995 % Added edition after title (SGLS)
996 format.edition output
998 { format.bvolume output
1000 format.number.series output
1001 % format.edition output
1007 format.book.crossref output.nonnull
1016 format.authors output
1017 author format.key output
1018 format.date "year" output.check
1020 format.title "title" output.check
1031 { format.editors "author and editor" output.check
1032 editor format.key output
1034 { format.authors output.nonnull
1036 { "author and editor" editor either.or.check }
1041 format.date "year" output.check
1043 format.btitle "title" output.check
1044 % Added edition after title (SGLS)
1045 format.edition output
1048 format.bvolume output
1049 format.chapter.pages "chapter and pages" output.check
1051 format.number.series output
1052 % format.edition output
1057 format.chapter.pages "chapter and pages" output.check
1059 format.book.crossref output.nonnull
1066 FUNCTION {incollection}
1068 format.authors "author" output.check
1069 author format.key output
1070 format.date "year" output.check
1072 format.title "title" output.check
1075 { format.in.ed.booktitle "booktitle" output.check
1076 format.bvolume output
1077 format.number.series output
1078 % format.edition output
1079 format.chapter.pages output
1083 { format.incoll.inproc.crossref output.nonnull
1084 format.chapter.pages output
1091 FUNCTION {inproceedings}
1093 format.authors "author" output.check
1094 author format.key output
1095 format.date "year" output.check
1097 format.title "title" output.check
1100 { format.in.ed.booktitle "booktitle" output.check
1101 format.bvolume output
1102 format.number.series output
1106 { organization output
1109 { organization output
1114 { format.incoll.inproc.crossref output.nonnull
1122 FUNCTION {conference} { inproceedings }
1126 format.authors output
1127 author format.key output
1128 format.date "year" output.check
1130 format.btitle "title" output.check
1131 % Added edition after title (SGLS)
1132 format.edition output
1136 % format.edition output
1141 FUNCTION {mastersthesis}
1143 format.authors "author" output.check
1144 author format.key output
1145 format.date "year" output.check
1147 format.title "title" output.check
1149 bbl.mthesis format.thesis.type output.nonnull
1150 school "school" output.check
1158 format.authors output
1159 author format.key output
1160 format.date "year" output.check
1169 FUNCTION {phdthesis}
1171 format.authors "author" output.check
1172 author format.key output
1173 format.date "year" output.check
1175 format.title "title" output.check
1177 bbl.phdthesis format.thesis.type output.nonnull
1178 school "school" output.check
1184 FUNCTION {proceedings}
1186 format.editors output
1187 editor format.key output
1188 format.date "year" output.check
1190 format.btitle "title" output.check
1191 format.bvolume output
1192 format.number.series output
1201 FUNCTION {techreport}
1203 format.authors "author" output.check
1204 author format.key output
1205 format.date "year" output.check
1207 format.title "title" output.check
1209 format.tr.number output.nonnull
1211 institution "institution" output.check
1217 FUNCTION {unpublished}
1219 format.authors "author" output.check
1220 author format.key output
1221 format.date "year" output.check
1223 format.title "title" output.check
1225 format.note "note" output.check
1229 FUNCTION {default.type} { misc }
1240 FUNCTION {chop.word}
1243 s #1 len substring$ =
1244 { s len #1 + global.max$ substring$ }
1249 FUNCTION {format.lab.names}
1251 s #1 "{vv~}{ll}" format.name$
1252 s num.names$ duplicate$
1254 { pop$ " " * "et~al." emphasize * }
1257 { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
1258 { " " * "et~al." emphasize * }
1259 { " \& " * s #2 "{vv~}{ll}" format.name$ * }
1267 FUNCTION {author.key.label}
1270 { cite$ #1 #3 substring$ }
1274 { author format.lab.names }
1278 FUNCTION {author.editor.key.label}
1282 { cite$ #1 #3 substring$ }
1286 { editor format.lab.names }
1289 { author format.lab.names }
1293 FUNCTION {editor.key.label}
1296 { cite$ #1 #3 substring$ }
1300 { editor format.lab.names }
1304 FUNCTION {calc.short.authors}
1308 'author.editor.key.label
1309 { type$ "proceedings" =
1318 FUNCTION {calc.label}
1319 { calc.short.authors
1323 year duplicate$ empty$
1331 FUNCTION {sort.format.names}
1335 s num.names$ 'numnames :=
1336 numnames 'namesleft :=
1339 "{ll{ }}{ f{ }}{ jj{ }}"
1344 namesleft #1 = t "others" = and
1351 nameptr #1 + 'nameptr :=
1352 namesleft #1 - 'namesleft :=
1357 FUNCTION {sort.format.title}
1361 "The " #4 t chop.word
1365 #1 global.max$ substring$
1368 FUNCTION {author.sort}
1371 { "to sort, need author or key in " cite$ * warning$
1377 { author sort.format.names }
1381 FUNCTION {author.editor.sort}
1385 { "to sort, need author, editor, or key in " cite$ * warning$
1391 { editor sort.format.names }
1394 { author sort.format.names }
1398 FUNCTION {editor.sort}
1401 { "to sort, need editor or key in " cite$ * warning$
1407 { editor sort.format.names }
1420 { type$ "proceedings" =
1426 #1 entry.max$ substring$
1435 #1 entry.max$ substring$
1443 STRINGS { last.label next.extra }
1445 INTEGERS { last.extra.num number.label }
1447 FUNCTION {initialize.extra.label.stuff}
1448 { #0 int.to.chr$ 'last.label :=
1450 #0 'last.extra.num :=
1454 FUNCTION {forward.pass}
1455 { last.label label =
1456 { last.extra.num #1 + 'last.extra.num :=
1457 last.extra.num int.to.chr$ 'extra.label :=
1459 { "a" chr.to.int$ 'last.extra.num :=
1461 label 'last.label :=
1464 number.label #1 + 'number.label :=
1467 FUNCTION {reverse.pass}
1469 { "a" 'extra.label := }
1472 extra.label 'next.extra :=
1477 { "{\natexlab{" swap$ * "}}" * }
1480 label extra.label * 'label :=
1483 EXECUTE {initialize.extra.label.stuff}
1485 ITERATE {forward.pass}
1487 REVERSE {reverse.pass}
1489 FUNCTION {bib.sort.order}
1493 year field.or.null sortify
1500 #1 entry.max$ substring$
1504 ITERATE {bib.sort.order}
1508 FUNCTION {begin.bib}
1511 { preamble$ write$ newline$ }
1513 "\begin{thebibliography}{" number.label int.to.str$ * "}" *
1515 "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
1521 EXECUTE {init.state.consts}
1523 ITERATE {call.type$}
1527 "\end{thebibliography}" write$ newline$
1531 %% End of customized bst file
1533 %% End of file `jfmraw.bst'.